2

以下の2つのページがあります。

.../ hello.jsf url によってレンダリングされる hello.xhtml 。

<h:form>
  <h:commandButton id="submit" value="Submit" action="response"/>
</h:form>

.../ response.jsf url によってレンダリングされる response.xhtml 。

<h:form>
  <h:commandButton id="back" value="Back" action="hello"/>
</h:form>

[送信] ボタンをクリックすると、hello ページが応答ページにリダイレクトされますが、URL は同じままです。つまり、URL は .../hello.jsf のままです。

Submit ボタンをクリックした後の URL を.../response.jsfにしたいです。何か助けてください。

どうもありがとう!

4

2 に答える 2

2

kolossusによって暗示されるような昔ながらのJSFナビゲーションケースを実際に使用しておらず、代わりに新しいJSF2暗黙的ナビゲーション機能を使用している場合は、faces-redirect=trueクエリ文字列パラメーターを結果に追加するだけです。

<h:form>
  <h:commandButton id="submit" value="Submit" action="response?faces-redirect=true" />
</h:form>

ただし、Beanアクションをまったく呼び出す必要がなく、プレーンなページ間ナビゲーションを使用する場合は、これに対してPOSTリクエストを実行しても意味がありません。その時を使用して<h:button>ください。

<h:button id="submit" value="Submit" outcome="response" />

参照:

于 2012-11-11T11:28:21.477 に答える
2

redirect次のように属性をfaces_config.xmlファイルに追加します。

 <navigation-rule>
    <from-view-id>/hello.xhtml</from-view-id>
    <navigation-case>
        <from-outcome>response</from-outcome>
        <to-view-id>/response.xhtml</to-view-id>
       <!--the redirect element -->
        <redirect/>
    </navigation-case>
</navigation-rule>

編集:faces-config.xmlナビゲーション結果のスタイリングから を使用しているという印象を受けました。あなたが行っていることは、新しい JSF 2 スタイルのナビゲーションでも許容されることを個人的に確認しました。redirectJSF2スタイルのナビゲーション処理で url パラメータを使用する方法については、BalusC の回答を参照してください。

于 2012-11-11T04:39:13.957 に答える