こんにちは、JSF 2.1 のナビゲーション ルールに問題があります。この構成は JSF 1.2 で動作していました。プロジェクトでは、JSF 2.1、RichFaces 4.2、Tomahawk、Spring 3.1、urlrewrite、acegi などのいくつかの追加ライブラリが使用されています。
問題は:
ブラウザ URL でページを開いています: localhost:8080/cat1/cat2、index.xhtml ページが表示されます。フォームに入力してボタンをクリックすると、2 秒後に page.xhtml に結果が表示されます。すべて問題ありませんが、ブラウザの URL に二重スラッシュがあります。localhost:8080/cat1/cat2/page.xhtml の代わりに localhost:8080/cat1/cat2//index.xhtml があります。
page.xhtml のリンクをクリックしようとすると、URL の二重スラッシュが原因でページが見つかりません。
page.xhtml には、同じメソッド フォーム Bean を呼び出すボタンが再度計算されます。このボタンをクリックした後の応答は問題ありません。私の URL は localhost:8080/cat1/cat2/page.xhtml で、二重スラッシュはありません。ページ上のすべてのリンクが機能します。
URL: localhost:8080/cat1/cat2/index.xhtml を入力してボタンをクリックすると、page.xhtml が表示されますが、URL は localhost:8080/cat1/cat2/ であり、ページ上のすべてのリンクが機能します。
この行を追加しました:
<from-action>#{bean.method}</from-action>
しかし、助けにはなりませんでした
私のindex.htmlのボタン:
<h:commandButton action="#{bean.method}" value="" styleClass="method right" tabindex="8" />
アクション:
public String method() {
// few instruction
return "success";
}
ルール:
<navigation-rule>
<from-view-id>/cat1/cat2/*</from-view-id>
<navigation-case>
<from-outcome>success</from-outcome>
<to-view-id>/cat1/cat2/page.xhtml</to-view-id>
</navigation-case>
<!-- Here is more cases -->
</navigation-rule>
誰かが同様の問題に遭遇しましたか?