簡體   English   中英

在Seam / JSF中驗證失敗的導航

[英]Navigation on validation failure in Seam/JSF

我玩Seam (2.0.2.SP1)已經有幾個星期了,我已經掌握了大部分基礎知識,但是我還沒有針對以下方面提出一個不錯的解決方案。

假設我在/foo.xhtml處有一個帶有重寫規則的表單,使得諸如/foo.seam?id=<fooId>類的URL轉換為/foo/<fooId> 有一個commandButton與訴訟的形式#{fooHome.update} 我在/foo.page.xml中也有一個導航規則,該規則可以在成功執行POST之后重定向回一個不錯的,書簽友好的GET:

<navigation from-action="#{fooHome.update}">
    <rule if-outcome="updated">
        <redirect view-id="/foo.xhtml">
            <param name="id" value="#{fooHome.instance.id}"/>
        </redirect>
    </rule>
</navigation>

問題是當發生驗證錯誤時,導航規則將被跳過,並且我在POST之后以/foo結尾。

我的問題:有沒有一種方法可以重定向驗證錯誤,所以我最終獲得了對/foo/<fooId>的GET請求,而不是對/foo的POST?

我嘗試在fooHome滾動我自己的驗證方法,返回“失敗”結果,但是我真的不希望無效數據通過驗證階段(因此進入當前對話)。

您通常會在驗證失敗時重新顯示相同的視圖,而不是重定向。 假設您將UrlRewrite用於重寫規則,則也許可以使用出站規則,以便在這種情況下仍顯示/ foo / {fooId} URL。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM