私は数週間Seam (2.0.2.SP1) をいじっており、基本的なことのほとんどを把握していますが、次のことに対するまともな解決策は思いつきませんでした。
にフォームがあり/foo.xhtml、 のような URL/foo.seam?id=<fooId>が に変換されるような書き換えルールがあるとします/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>
問題は、検証エラーが発生したときです。その時点でナビゲーション ルールがスキップされ/foo、POST の後になってしまいます。
私の質問: 検証エラーでリダイレクトする方法はあり/foo/<fooId>ます/fooか?
で独自の検証メソッドをロールバックしてfooHome、「失敗」の結果を返してみましたが、無効なデータが検証フェーズを通過して (したがって、現在の会話に) 入りたくありません。