ユーザーがアプリケーションのアカウントを作成できるインターフェースを提供しました。プロセスの最後に、登録メソッドは登録プロセスを実行し、ページに成功メッセージを追加してから、すべてのシステムユーザーを表示する中央のデータテーブルにユーザーを移動します。
私が抱えている問題は、ページのリダイレクトが原因で成功メッセージが表示されないことです。メソッドが完了するまでJSFメッセージが表示されないため、メソッドにwait()を含めることはできません。理想的には、成功メッセージを表示してから、指定した時間後にページがリダイレクトされるようにする必要があります。
どうすればこれを達成できますか?
メッセージを保持フラッシュスコープ 内。リダイレクト後も存続します。
context.addMessage(clientId, message);
externalContext.getFlash().setKeepMessages(true);
return "users.xhtml?faces-redirect=true";
古い Mojarra バージョンには、Flashスコープに関連するいくつかの特異なバグがあることに注意してください。
アプリケーションがこの影響を受けないようにするには、最低でもMojarra 2.1.27/2.2.5にアップグレードすることをお勧めします。