0

自己登録を使用してアカウントを作成するために使用される JSF 2.0 アプリケーションがあります。最初のページには、名前、電子メール、uid などのフィールドがあります。一般的な登録では、確認ページ (他のカスタム ページとその間のページ) と最終的な成功ページが表示されます。各ページは、faces-redirect=true を使用して JSF でレンダリングされるため、プロセス全体で 3 ~ 4 ページ (facelets) になります。このアプリケーションでは、中間ページ/確認ページ/最終ページなどを表示するために SessionScoped バッキング Bean を使用します。登録が完了したら、セッションから SessionScope Bean をクリアし、セッションを無効にします。

問題は次のとおりです。確認ページ/中間ページなどには、ユーザーが最初のページから入力したユーザーの詳細が表示されます (バッキング Bean の EL を使用: #sessionBean.firstName など)。そのため、ユーザーがこの URL (host/appName/confirmationPage.xhtml) をブラウザーに直接入力すると、ページは空白の値で読み込まれます (ユーザーが最初のページに直接移動しなかったため)。また、登録が完了した後、ユーザーが [戻る] ボタンをクリックすると、空白の値が表示されます (no-cache がフィルター クラスで明示的に設定されているため、ここではキャッシュは使用されませんが、これは正しい動作です)。

firstName などが存在しない場合、ユーザーを強制的に最初のページに移動させるにはどうすればよいですか。つまり、ユーザーがページに到達したとき、ユーザーがこのセッションの最初のページからのみこのページに到達したことを確認しますか?

フィルター クラスを使用する必要がありますか? それとも、prerenderview イベントを使用して空白の値をチェックし、それらを最初のページにリダイレクトする必要がありますか? 認証がないため、ここには「ユーザーログイン」はありません。これは一般的なユースケースだと思います.JSFにベストプラクティスがあるかどうか知りたいです.

4

0 に答える 0