Сохранение FacesMessage после перенаправления для представления через в JSF [дубликат]

У меня есть то, что, как я полагаю, является общей проблемой: у некоторых управляемых bean-компонентов есть действие, которое добавляет некоторые сообщения в контекст:

FacesMessage fm = new FacesMessage("didn't work");
fm.setSeverity(FacesMessage.SEVERITY_ERROR);
FacesContext.getCurrentInstance().addMessage(null, fm);
return "some-outcome";

Затем я отображаю результат в faces-config.xml и настраиваю его на

<navigation-case>
    <from-outcome>some-outcome</from-outcome>
    <to-view-id>/view.xhtml</to-view-id>
    <redirect/>
</navigation-case>

В view.xhtml я представляю message:

<h:message globalsOnly="true" />

Однако это не работает, потому что сообщение теряется при выполнении перенаправления.

Как я могу это решить? Я нашел этот удивительный пост , в котором объясняется, как это сделать с помощью PhaseListener , но я считаю, что эта ситуация слишком распространена, чтобы ее нужно было решать таким образом. Я ошибся? Следует ли мне создать PhaseListener ? Или есть какие-то другие стандартные решения?

9
задан wattostudios 5 May 2012 в 16:38
поделиться