以下のナビゲーションルールがある場合:
<navigation-rule>
<from-view-id>Mainview</from-view-id>
<navigation-case>
<from-outcome>outcome1</from-outcome>
<to-view-id>view1</to-view-id>
</navigation-case>
<navigation-case>
<from-outcome>outcome2</from-outcome>
<to-view-id>view2</to-view-id>
<redirect/>
</navigation-case>
<navigation-case>
<from-outcome>outcome3</from-outcome>
<to-view-id>view3</to-view-id>
<redirect/>
</navigation-case>
</navigation-rule>
このフロー全体で検証エラーがなければ、すべて正常に動作します。あれは :
ステップ 1) MainForm のメソッドはビュー 1 をレンダリングする結果 1 を返します ステップ 2) ビュー 1 のメソッドはビュー 2 をレンダリングする結果 2 を返します
上記のルールにはリダイレクトがないことに注意してください。つまり、ブラウザのウィンドウに Mainview が表示されます。
上記のステップ 2 で検証が失敗した場合、ブラウザは view2 を表示する代わりに、アドレス バーに view1 を表示します。
さて、次のフロー (検証が成功したら) では、開始点は Mainview ではなく、view1 を意味するため、ナビゲーション ケースは view1 で記述する必要があります。
これはどのように処理できますか?ナビゲーション ルールの別のセットを記述する必要がありますか? または、上記のようなナビゲーション ルールの設計は明らかに間違っていますか?