com.sun.faces.enableRestoreView11Compatibility
to ustawienie JSF 1.2, które mówi JSF 1.2, aby zachowywał się jak JSF 1.1.
com.sun.faces.enableRestoreView11Compatibility
== true
oznacza „nie rzucać ViewExpiredException
, zamiast po prostu utworzyć nowy widok jeśli stary wygasł.”
IBM notes na zachowanie JSF 1.1 powiedzieć:
Może to mieć negatywne zachowania, ponieważ jest to nowy widok, a przedmioty, które są zwykle w widoku, takie jak państwo, nie są już tam być.
Domyślna JSF 1.2 zachowanie jest zdefiniowane w the spec jak to:
Jeżeli wniosek jest odświeżenie strony, zadzwoń ViewHandler.restoreView()
, przekazując instancję FacesContext
dla bieżącego żądania i identyfikator widoku, i przekazujących UIViewRoot
dla przywróconego widoku. Jeśli zwrot z ViewHandler.restoreView()
ma wartość null, wyślij ViewExpiredException
z odpowiednim komunikatem o błędzie. javax.faces.application.ViewExpiredException is a
FacesException`, który musi zostać zgłoszony, aby zasygnalizować aplikacji, że oczekiwany widok nie został zwrócony dla identyfikatora widoku. Aplikacja może wykonać pewne działanie w oparciu o ten wyjątek.
mieć ViewExpiredException
wyrzucane po wygaśnięciu widok, usunąć parametrcom.sun.faces.enableRestoreView11Compatibility
lub ustawić go na false
.
Przestrzeń nazw com.sun
sugeruje, że parametr jest Słońce/Mojarra i pochodzi ustawienie wdrożenie specyficznych, więc prawdopodobnie nie będzie działać we wszystkich implementacjach JSF.
Pomyślałem, że mogę użyć ... aby przekierować użytkownika na stronę logowania, ale bez tego parametru kompatybilności to nie działa. Muszę napisać mój PhaseListener, aby wykonać to przekierowanie, lub może jest jakiś prosty sposób. –
aindl
Czy to ustawienie jest nadal poprawne w JSF 2.2 lub jest jakaś opcja? –