2013-10-01 18 views
8

Jak przekierować na tę samą stronę (nie znam strony, przekierowanie odbywa się w menu współdzielonym przez kilka stron)?Jak przekierować na tę samą stronę po żądaniu POST?

Próbowałem

return "?faces-redirect=true"; 

na końcu metody działania, ale komunikat o błędzie, ponieważ nie jest możliwe, aby znaleźć przypadek nawigacyjny „? Twarze przekierowanie = true”.

Z góry dziękuję za pomoc.

Odpowiedz

18

Musisz podać prawidłowy identyfikator widoku w wyniku, a nie tylko ciąg zapytania. Możesz uzyskać bieżący identyfikator widoku od UIViewRoot#getViewId().

String viewId = FacesContext.getCurrentInstance().getViewRoot().getViewId(); 
return viewId + "?faces-redirect=true"; 
-1

Po prostu zwróć null lub pusty ciąg z działania aplikacji.

Zgodnie JSF2.2 specyfikacji, sekcja 7.4.1:

Jeżeli wynik zwrócony przez działanie aplikacji jest null lub pusty ciąg , a żaden z przypadków nawigacyjnych, które mapę do bieżący widok Identyfikator ma niepuste wyrażenie warunkowe, ten sam widok musi być ponownie wyświetlany pod numerem .

+0

Można również zastosować metodę unieważnienia. Jest jeszcze bardziej wyraźny. To jest to samo i działa idealnie. – zmirc

+3

Nie wykonuje przekierowania. Wykonuje posunięcie naprzód. – BalusC

Powiązane problemy