JSF:ページ転送とページ転送

JSF:ページフォワードとページリダイレクト

デフォルトでは、JSFは別のページにナビゲートしながらサーバーページを転送します。 次の例を参照して、ページフォワードとページリダイレクトを区別してください。

start.xhtml」ページ。ボタンで「page1.xhtml」ページに移動します。

1. 前のページ

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

  1. ブラウザは「GET」リクエストをURL:http://localhost:8080/JavaServerFaces/faces/start.xhtmlに送信します。

  2. JSFはリクエストを受信し、「start.xhtml」を返します。

  3. ブラウザに「start.xhtml」の内容が表示されます。

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

  5. JSFはアクションを受信し、サーバー側でinternal page forwardから「page1.xhtml」を実行します。

  6. JSFは「page1.xhtml」を返します。

  7. ブラウザは「page1.xhtml」の内容を表示します。

前方のページでは、browser’s URL is not update

jsf2-page-forward-example

2. ページのリダイレクト

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

  1. ブラウザは「GET」リクエストをURL:http://localhost:8080/JavaServerFaces/faces/start.xhtmlに送信します。

  2. JSFはリクエストを受信し、「start.xhtml」を返します。

  3. ブラウザに「start.xhtml」の内容が表示されます。

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

  5. JSFはアクションを受信し、「redirect」から「page1.xhtml」への応答をブラウザに送り返します。

  6. ブラウザは応答を受信し、別の「GET」要求をURL:http://localhost:8080/JavaServerFaces/faces/page1.xhtmlに送信します。

  7. JSFはリクエストを受信し、「page1.xhtml」を返します。

  8. ブラウザには、「page1.xhtml」とbrowser’s URL is updatedの内容が表示されます。

jsf2-page-redirection-example

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

ページを進む。


    

ページのリダイレクト。


    

ナビゲーションルールでは、<navigation-case />内に<redirect />要素を追加することで、ページのリダイレクトを有効にできます。


    start.xhtml
    
        page1
        page1.xhtml
        
    

結論

デフォルトのページ転送メカニズムは、ページリダイレクトがサーバーに余分なHTTPリクエストを追加するため、ページリダイレクトと比較するとより高速です。 したがって、必要な場合にのみページリダイレクトを有効にします。たとえば、Post/Redirect/Getデザインパターンを使用して従来のduplicated form submission problemを解決します。

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

ダウンロード–JSF-2-Page-Redirection-Example.zip(9KB)