com.sun.faces.enableRestoreView11Compatibility
ist eine JSF 1.2-Einstellung, die JSF 1.2 wie JSF 1.1 verhält.
com.sun.faces.enableRestoreView11Compatibility
== true
bedeutet "werfen Sie keine ViewExpiredException
; stattdessen erstellen Sie einfach eine neue Ansicht, wenn die alte abgelaufen ist."
Die IBM notes auf dem JSF 1.1 Verhalten sagen:
Diese negative Verhalten haben kann, weil es sich um eine neue Ansicht ist, und Elemente, die in der Regel in der Ansicht, wie Zustand sind, sind nicht mehr da sein.
Der Standard JSF 1.2 Verhalten in the spec wie folgt definiert ist:
Wenn die Anforderung eine Postback ist, ViewHandler.restoreView()
nennen, die FacesContext
Instanz für die aktuelle Anforderung und der Ansicht Identifikator Geben, und eine Rückkehr UIViewRoot
für die wiederhergestellte Ansicht. Wenn die Rückgabe von ViewHandler.restoreView()
Null ist, werfen Sie eine ViewExpiredException
mit einer entsprechenden Fehlermeldung. javax.faces.application.ViewExpiredException is a
FacesException`, das ausgelöst werden muss, um der Anwendung zu signalisieren, dass die erwartete Ansicht für die Ansichtskennung nicht zurückgegeben wurde. Eine Anwendung kann basierend auf dieser Ausnahme eine Aktion ausführen.
Um ein ViewExpiredException
geworfen, wenn die Ansicht abläuft, die com.sun.faces.enableRestoreView11Compatibility
Parameter oder setzen Sie sich auf false
entfernen.
Der com.sun
Namespace lässt vermuten, dass der Parameter eine Sun/Mojarra ist und abgeleitete Implementierung spezifische Einstellung, so wird es wahrscheinlich nicht mit allen JSF-Implementierungen arbeiten.
Ich dachte, dass ich ... verwenden kann, um Benutzer zur Anmeldeseite umzuleiten, aber ohne diesen Kompatibilitätsparameter funktioniert das nicht. Ich muss meinen PhaseListener schreiben, um diese Umleitung zu machen, oder vielleicht gibt es einen einfachen Weg. –
aindl
Ist diese Einstellung in JSF 2.2 noch gültig oder gibt es eine andere Option? –