In unserer Anwendung verwenden wir jsf, wir haben , um den Benutzer auf die Homepage umzuleiten, nachdem ihre Sitzung abgelaufen ist. Dafür brauche ich einen Pfad der Homepage, die ich in meiner Abmelden verwaltete Bean als Managed Bean-Eigenschaft gehalten .Aber nach Sitzung ist abgelaufen, wenn ich versuche, den Zugriff auf, dass es null-Zeiger-Ausnahme auftreten wird (Managed Bean wird null) .Dann ich habe entscheiden Alternative zu versuchen (dh) manuell erstellen Logout-Klasse und versuchen, die Eigenschaft zuzugreifen, zu diesem Zeitpunkt der Eigenschaft, die ich geworden zugreifen will, wird null.How kann ich diese Eigenschaft zugreifen? Bitte helfen Sie mir. Vielen Dank im Voraus.Wenn Managed Bean erstellt und Eigenschaft der Beans erstellt?
Antwort
Neben der vorherigen Antwort:
Sie (in web.xml) verwenden könnte
<error-page>
<exception-type>javax.faces.application.ViewExpiredException</exception-type>
<location>viewexpired.jsp</location>
</error-page>
oder Kontextparameter statt Session-Attribute. Siehe:
- http://tomcat.apache.org/tomcat-5.5-doc/config/context.html
- http://safebox.guisho.com/jsf-how-to-get-webxml-parameters
Oder nutzen (in faces-context.xml)
<managed-bean-scope>application</managed-bean-scope>
für Ihre Bohne, so dass es aus der Sitzung unabhängig bleiben.
richtiger Weg, dies zu tun, wird erklärt Exception-Handler-Fabrik in faces-config.xml, dann die Fabrik Umsetzung von javax.faces.context.ExceptionHandlerFactory
Subklassen, und dann überschreiben handle()
Methode in Ihrer Implementierung von javax.faces.context.ExceptionHandlerWrapper
. Es sollten Sie die Ausnahme für die ViewExpiredException
Klasse analysieren und umleiten zu Ihrer Ansicht Seite in diesem Fall abgelaufen.
Hallo Ivanov, Wir haben das gleiche in unserem applications.But das Problem ist in nur Umleitung auf die Fehler page.My Anwendung Umleitungen an den Fehler verwendet page.But die Seite nicht geladen wird. –
Durch die emptySessionPath Hinzufügen = true in server.xml kann ich seine Werke bekommen. –
Weil ich die Homepage Pfad als dynamisches one.Its brauchen, um nicht zu heiß sein coded.So nur ich als verwaltete Eigenschaft behalten will. –