Comment puis-je ajouter les Visages des Messages lors @PostConstruct

Dans un backing bean @PostConstruct méthode, je fais un appel d'un EJB qui pourrait revenir certains messages que je veux afficher sur la page via p:messages. Cependant, même si j'ajoute le FacesMessages par exemple FacesContext.getCurrentInstance().addMessage(...), p:messages n'est pas mis à jour avec les FacesMessages.

Si j'ai plutôt l'appel à l'EJB sur une action à partir de la page (un utilisateur clique sur un bouton sur la page qui appelle une méthode qui appelle les EJB, puis ajoute les FacesMessage(s)), alors les messags montrer à l'aide de p:les messages comme prévu.

Comment puis-je ajouter les Visages des Messages lors @PostConstruct et de les faire apparaître lorsque la page est d'abord rendu?

Code:

Page1Controller.java:

@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"));      
    }

}

page1.xhtml

   <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>
  • Worksforme™. Comment êtes-vous exactement de la création/ajout de messages? Ce JSF impl/version? Est le bean géré par JSF ou CDI ou autre chose?
  • Remarque: si invoquer la même méthode (à l'appel de l'EJB, etc) à l'aide de la f:event type="preRenderView" écouteur d'une directive, la FacesMessage est mis à jour correctement. Devrais-je le faire?
  • À l'aide de Mojarra 2.1.7, Primefaces 3.2 (dernière version stable).
  • Ce serait une solution de contournement. @PostConstruct devrait fonctionner très bien pour cela. J'ai fait un test rapide avec Mojarra 2.1.7 et PrimeFaces 3.2 sur Tomcat 7.0.27. Sans un béton SSCCE, nous ne pouvons pas vous aider beaucoup.