4

こんにちは、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>

誰かが同様の問題に遭遇しましたか?

4

1 に答える 1

4

doubleは、ウェルカム ファイルで//開始されているためです。/index.xhtml/index.xhtml

<welcome-file-list>
    <welcome-file>index.xhtml</welcome-file>
</welcome-file-list>

JSF 2.0 では、faces-config.xml にナビゲーション ルールを明示的に記述する必要はありません。結果のビュー ID を返すだけです。

したがって、アクション メソッドで「成功」を返すと、success.xhtml自動的にフェッチされます。

したがって、「ページ」を返すだけで、ナビゲーション ルールを から削除できますfaces-config.xml

于 2012-09-28T18:43:06.910 に答える