0

私たちのアプリケーションでは、jsf を使用します。ユーザーのセッションが期限切れになった後、ユーザーをホームページにリダイレクトする必要があります。そのためには、マネージド Bean プロパティとしてログアウト マネージド Bean に保持したホームページのパスが必要です。しかし、セッションの後nullポインター例外が発生することにアクセスしようとすると期限切れになりました(マネージドBeanがnullになります)。次に、代替(つまり)ログアウトクラスを手動で作成し、プロパティにアクセスしようとすることにしました。その時点で、必要なプロパティaccess が null になります。そのプロパティにアクセスするにはどうすればよいですか? 私を助けてください。前もって感謝します。

4

2 に答える 2

1

前の回答に加えて:

(web.xmlで)使用できます

<error-page>
<exception-type>javax.faces.application.ViewExpiredException</exception-type>
<location>viewexpired.jsp</location>
</error-page>

または、セッション属性の代わりにコンテキスト パラメータ。見る:

または(faces-context.xmlで)使用します

<managed-bean-scope>application</managed-bean-scope> 

Bean の場合、セッションから独立したままになります。

于 2010-11-30T11:43:47.447 に答える
1

これを行う正しい方法は、faces-config.xml で例外ハンドラ ファクトリを宣言し、次に をサブクラス化してファクトリを実装し、次に の実装でメソッドをjavax.faces.context.ExceptionHandlerFactoryオーバーライドすることです。その場合、クラスの例外を分析し、ビューの期限切れページにリダイレクトする必要があります。handle()javax.faces.context.ExceptionHandlerWrapperViewExpiredException

于 2010-11-30T08:06:36.247 に答える