2011-08-09 21 views
5

リフレッシュ時に二重のPOSTを避ける必要があります。だから、this postのようにPOST/Redirect/GETパターン(faces-redirect=true)とナビゲーションハンドラ(@BalusC)を使用しています。アクションメソッドがnull(同じページに留まる)を返すときに、JSF 2.0でそのパターンを使用する方法は?それは可能ですか、私はPOST/Redirect/GET以外の何かを使う必要がありますか?私はビュースコープのBeanを生かし続ける必要があるので、同じビュー(PRGが動作する)でアクションメソッドを返すことは解決策ではありません(失われる原因はview scope)。JSF 2.0:アクションメソッドがnullを返すときのPOST/Redirect/GETパターン

ビューtest.xhtml:

<h:commandButton action="#{bean.send}"/> 

ビーン:

@ManagedBean 
@ViewScoped 
class Bean { 
    String send() { 
     // do something... 
     return null; 
    } 

    String send2() { 
     // do something... 
     return "test"; // view scope lost 
    } 
} 
+0

こんにちは、あなたは解決しようとしている使用の例を挙げることができますか? –

+0

あなたはこれを理解したことがありますか? – edhedges

答えて

0

Marioosh。

ポスト/リダイレクト/取得原因2つのライフサイクルシナリオ:

  • リダイレクトはFaces以外レスポンス(JSF-2仕様のセクション2.1)を引き起こします。

  • Facesレスポンス(セクション2.1.1)で非顔リクエストを引き起こします。このシナリオでは、新しいビューが作成されます。

0

いくつかのフレームワークは、デフォルトでこの戦略を実装しています。たとえば、Spring WebFlow。各Submit(POST)の後には、リダイレクトGETとパラメータ "execution"があり、SpringはSAMEビューを見つけることができます。例えば :

http://myhost:8080/booking-spring-faces/spring/mypage?execution=e1s2 

私はBalusCからOmnifacesなどのJSFツールキットでこの機能を見つけるのが大好きです!

関連する問題