Как я могу добавить сообщения Faces во время @PostConstruct

В методе @PostConstruct поддерживающего компонента я вызываю EJB-компонент, который может вернуть некоторые сообщения, которые я хочу отобразить на странице, через p: messages. Тем не менее, даже если я добавлю FacesMessages, например, FacesContext.getCurrentInstance (). AddMessage (...), p: сообщения не обновляются с помощью FacesMessages.

Если я вместо этого вызову вызов EJB для действия со страницы (скажем, пользователь нажимает кнопку на странице, которая вызывает метод, который вызывает EJB, а затем добавляет FacesMessage (s)), тогда сообщения отображаются с помощью p : сообщения, как и ожидалось.

Как добавить сообщения Faces во время @PostConstruct и показать их при первоначальной визуализации страницы?

Код:

Page1Controller.java:

<code>@ManagedBean
public class Page1Controller
{
    @PostConstruct
    public void init()
    {
        FacesContext.getCurrentInstance().addMessage(null, 
            new FacesMessage("Test Message from @PostConstruct"));
    }

    public String getValue()
    {
            return "Some Value";
    }

    public void triggerMessage(ActionEvent event)
    {
            FacesContext.getCurrentInstance().addMessage(null, 
                    new FacesMessage("Test Message from Trigger Button"));      
    }

}
</code>

page1.xhtml

<code>   <h:form>
        <p:messages showDetail="true" showSummary="true" autoUpdate="true"/>
        <h:outputText value="#{page1Controller.value}"/>
        <br/>
        <p:commandButton value="Trigger Message" 
                         actionListener="#{page1Controller.triggerMessage}"/>  
   </h:form>
</code>

Ответы на вопрос(3)

Ваш ответ на вопрос