デフォルトでは、JSFは別のページにナビゲートする際にサーバー・ページを前方に実行します。ページ転送とページリダイレクトを区別するには、次の例を参照してください。


` start.xhtml

“ページで、” page1.xhtml` “ページに移動します。

1.ページ転送

ページ転送の仕組みは次のとおりです。

  1. ブラウザがURLに「

    GET

    」リクエストを送信する:

  1. JSFはリクエストを受け取り、 ”

    start.xhtml

    “を返します.

  2. ブラウザは ”

    start.xhtml

    “の内容を表示します.

  3. ユーザーがボタンをクリックします.

  4. JSFはアクションを受け取り、内部ページ転送** を行います



page1.xhtml

“はサーバー側です。

  1. JSFは ”

    page1.xhtml

    “を返します.

  2. ブラウザは ”

    page1.xhtml

    “の内容を表示します.

ページ転送では、

ブラウザのURLは更新されていません


jsf2-page-forward-example、title = "jsf2-page-forward-example"、width = 639、height = 341

2.ページリダイレクト

ページリダイレクトの仕組みは次のとおりです。

  1. ブラウザがURLに「

    GET

    」リクエストを送信する:

  1. JSFはリクエストを受け取り、 ”

    start.xhtml

    “を返します.

  2. ブラウザは ”

    start.xhtml

    “の内容を表示します.

  3. ユーザーがボタンをクリックします.

  4. JSFはアクションを受け取り、 ”

    リダイレクト

    “を



page1.xhtml

“レスポンスがブラウザに返されます。

  1. ブラウザが応答を受信し、URLに別の「

    GET

    」リクエストを送信する

  1. JSFはリクエストを受け取り、 ”

    page1.xhtml

    “を返します.

  2. ブラウザは、 ”

    page1.xhtml

    “の内容と** ブラウザの内容を表示します

URLは更新されます** 。


jsf2-page-redirection-example、title = "jsf2-page-redirection-example"、width = 639、height = 350

JSF 2.0でページリダイレクトを有効にするには、結果文字列の最後に “faces-redirect = true”を追加します。

<h:form>
    <h:commandButton action="page1" value="Page1"/>
</h:form>

  • ページリダイレクト。**

<h:form>
    <h:commandButton action="page1?faces-redirect=true" value="Page1"/>
</h:form>

ナビゲーション規則では、

<navigation-case/> '内に

<redirect/> `要素を追加することによってページリダイレクトを有効にすることができます。

<navigation-rule>
    <from-view-id>start.xhtml</from-view-id>
    <navigation-case>
        <from-outcome>page1</from-outcome>
        <to-view-id>page1.xhtml</to-view-id>
        <redirect/>
    </navigation-case>
</navigation-rule>

結論

ページリダイレクトはサーバーに追加のHTTP要求を追加したため、ページリダイレクトと比較すると、デフォルトのページ転送メカニズムがより高速になります。したがって、必要なときにページリダイレクトを有効にするだけです。たとえば、

Post/Redirect/Get

Design Patternを使用して古典的なリンクを解決します。//spring-mvc/handling- duplicate-form-submission-in-spring-mvc/重複したフォーム提出の問題]。

ソースコードをダウンロードする

ダウンロード – リンク://wp-content/uploads/2010/09/JSF-2-Page-Redirection-Example.zip[JSF-2-Page-Redirection-Example.zip](9KB)

リンク://タグ/jsf2/[jsf2]