页面加载时显示咆哮primefaces jsf2

beg*_*ass 3 load growl primefaces jsf-2

我有这个命令按钮:

    <p:commandButton value="Enregistrer" action="#{reglementClientMB.ajouter}" 
            process="@this @form" update="@form" >
            <f:setPropertyActionListener target="#{reglementClientMB.est_ajouter}" value="false" />
            </p:commandButton>
Run Code Online (Sandbox Code Playgroud)

action方法返回到另一个页面,我想p:growl在下一页加载时显示一个

我测试了它是托管bean的构造函数,但是growl显示在页面中的数据下面

FacesContext.getCurrentInstance().addMessage(
                        null,
                        new FacesMessage(FacesMessage.SEVERITY_INFO, ""
                                + "Confirmation", "Réglement crée avec sucée"));

                RequestContext.getCurrentInstance().update("messages");
Run Code Online (Sandbox Code Playgroud)

我该怎么做到这一点

先感谢您

Bal*_*usC 9

如果<p:growl>在第一次构造bean之前渲染bean,那么bean的构造函数对于作业来说可能为时已晚.例如

<p:growl />
...
<h:outputText value="#{bean.something}" />
Run Code Online (Sandbox Code Playgroud)

它只有在<p:growl>渲染之前构造bean才有效.

<h:outputText value="#{bean.something}" />
...
<p:growl />
Run Code Online (Sandbox Code Playgroud)

为了解决您的具体问题,您需要在预渲染视图侦听器中执行该任务.

<f:event type="preRenderView" listener="#{bean.init}" />
Run Code Online (Sandbox Code Playgroud)

附:

public void init() {
    // Add the desired message here.
}
Run Code Online (Sandbox Code Playgroud)

  • 我通过将消息/咆哮放在模板代码的末尾解决了问题..这是一个好的/可接受的做法吗?或者我会遇到问题吗? (2认同)