2012-12-03 11 views
21

私はユーザーがアプリケーションのアカウントを作成できるようにするためのインターフェイスを用意しました。プロセスの終了時に、登録メソッドは登録プロセスを実行して、ページに成功メッセージを追加し、ユーザーをすべてのシステム・ユーザーを表示する中央データ・テーブルにナビゲートします。リダイレクトされたページに顔のメッセージを表示する方法

問題は、ページリダイレクトのために成功メッセージが表示されないことです。 JSFメッセージは、メソッドが完了するまで表示されないため、メソッドでwait()を使用できません。理想的には、成功メッセージが表示され、その後指定された時間後にページがリダイレクトされます。

どうすればこの問題を解決できますか?

答えて

48

Keep the messagethe flash scope。それはリダイレクトから生き残るでしょう。

context.addMessage(clientId, message); 
externalContext.getFlash().setKeepMessages(true); 
return "users.xhtml?faces-redirect=true"; 

古いMojarraバージョンはいくつかの独特のFlashスコープ関連のバグを持っていることに注意してください:

あなたはあなたのアプリケーションがこの影響を受けていないことを確実にするためにクロサギ科2.1.27/2.2.5の最小値にアップグレードするのが最善のでしょう。

+0

ありがとうございますBalusC、新しいページのメッセージの更新を呼び出す必要がありますか、ページが読み込まれたときに既定でトリガーされる必要がありますか? – tarka

+0

いいえ、リダイレクトによって同期要求が作成されるため、部分レンダリングの手段がありません。これはちょうど真新しいGET要求としてレンダリングされました。したがって、必要なのは「」または「」だけです。 – BalusC

+0

ありがとうございました。 Majorra 2.1.6に気づいたので、すぐにアップグレードして動作させる必要がありますか? 2.1.14はまだ安定していますか? – tarka

関連する問題