Mojarra から Myfaces に切り替えました。ほとんどの場合、それほど面倒ではありませんが、ナビゲーション ルールが以前のように機能しません。ナビゲーションの場合、リダイレクトに問題があります:
<navigation-case>
<from-outcome>test.edit</from-outcome>
<to-view-id>/test.xhtml</to-view-id>
<redirect/>
</navigation-case>
以下のようなコマンド リンク ナビゲーションでは、403 エラー (アクセスが拒否されました) が発生します。
<h:commandLink value="Add" id="test" action="test.edit"/>
この特定のケースでは、ブラウザーは (test.jsf ではなく) test.xhtml にリダイレクトしようとしました。これは、web.xml のセキュリティ制約によって防止されます。もちろん、セキュリティ制約を削除すると、生の xhtml が提供されます。
リダイレクトを削除すると問題なく動作しますが、もちろんブラウザの URL は変更されません。
また、以前は次のような無効な結果でナビゲーションを行うことができました。
<navigation-rule>
<from-view-id>/test.xhtml</from-view-id>
<navigation-case>
<from-action>#{bean.save}</from-action>
<if>#{true}</if>
<to-view-id>/list.xhtml</to-view-id>
<redirect/>
</navigation-case>
</navigation-rule>
ただし、リストを動的に表示するために ajax リクエストが送信されると (bean.save メソッドを呼び出さずに)、ページがリダイレクトされます。