web-dev-qa-db-ja.com

JSF 2でセッションの有効期限とViewExpiredExceptionを処理する方法

次のシナリオを検討してください。セッションがタイムアウト(期限切れ)になった後、JSFフォームの送信ボタンをクリックしています。ブラウザには、いくつかの例外メッセージが表示されます。

ViewExpiredException:ビューコンテキストを復元できませんでした

私がやりたいのは、セッションの有効期限が切れた後にウェブサイトのホームページに自動的にリダイレクトすることです。これを行うメカニズムは何ですか?どんな助けでも大歓迎です。

47
Selvin

HTTPセッションの有効期限が切れ、JSFビューステート保存メソッドがserverに設定されている間にユーザーがページで同期POSTリクエストを呼び出すたびに例外を処理するには、 <error-page>からweb.xmlこれは、JSF ViewExpiredException をキャッチし、ホームページを表示します。

<error-page>
    <exception-type>javax.faces.application.ViewExpiredException</exception-type>
    <location>/home.xhtml</location>
</error-page>

非同期(ajax)リクエストでも例外を処理するには、 SessionタイムアウトおよびJSF/PrimeFaces ajaxリクエストでのViewExpiredException処理で応答されるカスタムExceptionHandlerを実装する必要があります

こちらもご覧ください:

91
BalusC