0

私はJSFを使用しており、web.xmlでクライアントにjavax.faces.STATE_SAVING_METHODを持っています。私がしたいのは、セッションがタイムアウトして別のページにリダイレクトしようとすると、sessionTimeout.jsf にリダイレクトする必要があり、そのページのボタンをクリックすると、login.jsf にリダイレクトする必要があるということです。sessionTimeout.jsf を設計しました。セッションが期限切れになり、別のページに移動しようとすると、javax.faces.application.ViewExpiredException がスローされます。ターゲットページにセッション変数を設定して、そのページに移動するたびに最初に変数をチェックしますが、ここではそのページに移動する前に例外をスローします。これを解決するには?

4

4 に答える 4

1

これは役立つかもしれません

于 2010-07-21T04:36:25.097 に答える
1

「セッションが期限切れになり、別のページに移動しようとすると、javax.faces.application.ViewExpiredException がスローされます。」

エラー ページやログイン ページなどのページを一時的に作成して、セッション中のページから移動するときにセッションを無効にできるようにする必要があります。これに関する記事を提供してくれた BalusC に感謝します。

http://balusc.omnifaces.org/2013/02/stateless-jsf.html

これにより、アクション メソッドでセッションを無効にし、セッション認証フィルターによって保護されていないビューにリダイレクトするときに、Session スコープの Bean がすぐに再初期化されなくなります。

于 2016-01-11T20:21:27.837 に答える
0

解決策は、次を追加することです。

<a4j:region>
 <script language="javascript">
 A4J.AJAX.onExpired = function(loc, expiredMsg){
  window.location = "/sessionTimeOut.jsf";
 }
 </script>
</a4j:region>

RichFaces ガイドで詳細を読む

于 2010-07-21T08:57:56.777 に答える
-2

Web.xml に追加して、リロードのためにページにメッセージを表示します...

<error-page>
    <exception-type>javax.faces.application.ViewExpiredException</exception-type>
    <location>viewExpired.xhtml</location>
</error-page>
于 2010-07-22T13:58:01.363 に答える