Mam stronę JSF (przy użyciu MyFaces 2.0), która zbiera trochę danych przy pierwszym wyświetleniu. Jeśli nie może znaleźć pewnych informacji, powinien dostarczyć wiadomość o tym efekcie i przekierować z powrotem na inną stronę. Próbowałem użyć rozwiązania znalezionego tutaj Preserving FacesMessage after redirect for presentation through <h:message> in JSF (setKeepMessages (true)), ale wiadomości nie są wyświetlane po przekierowaniu. Jedyną różnicą, jaką mogę zauważyć, jest to, że nie używam reguły nawigacji, nazywam wywołanie przekierowania() w kontekście zewnętrznym, ponieważ nie występuje to w normalnym działaniu.Zachowywanie komunikatów JSF po przekierowaniu
odpowiedni kod:
public void redirectToPageWithMessage(String inPage, String message, FacesMessage.Severity severity){
getFlash().setKeepMessages(true);
addMessage(message, severity);
try {
getFacesContext().getExternalContext().redirect(inPage);
} catch (IOException e) {
e.printStackTrace();
}
}
Niestety to nie wydają się działać. Przekierowanie ma się dobrze, ale znaczniki /> < nie wyświetlają komunikatu. Czy jest coś innego w sposobie, w jaki następuje przekierowanie(), które uniemożliwiają działanie?
Czy istnieje lepszy sposób (inny niż wywoływanie przekierowania()) do przekierowania wewnątrz funkcji, która nie zwróci wyniku? – moneyt