[英]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.