1

私は数週間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、「失敗」の結果を返してみましたが、無効なデータが検証フェーズを通過して (したがって、現在の会話に) 入りたくありません。

4

1 に答える 1

1

通常、リダイレクトではなく、検証の失敗時に同じビューを再表示します。書き換えルールにUrlRewriteを使用していると仮定すると、おそらく、この場合でも/ foo /{fooId} URLが表示されるようにoutbound -ruleを使用できます。

于 2008-10-11T23:12:52.713 に答える