Jak mogę dodać Face Messages podczas @PostConstruct

W metodzie @PostConstruct komponentu bean bazowego wykonuję wywołanie do komponentu EJB, który może zwrócić niektóre komunikaty, które chcę wyświetlić na stronie za pomocą p: wiadomości. Jednak nawet jeśli dodam FacesMessages np. FacesContext.getCurrentInstance (). AddMessage (...), p: wiadomości nie są aktualizowane przy użyciu FaceMessages.

Jeśli zamiast tego wywołam wywołanie do EJB przy akcji ze strony (powiedzmy, że użytkownik klika przycisk na stronie, która wywołuje metodę, która wywołuje EJB, a następnie dodaje FaceMessage (s)), wiadomości pojawiają się przy użyciu p : wiadomości zgodnie z oczekiwaniami.

Jak dodać wiadomości Face Faces podczas @PostConstruct i pokazać je, gdy strona jest początkowo renderowana?

Kod:

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>

strona1.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>

questionAnswers(3)

yourAnswerToTheQuestion