0

我有一个template包含 primefacesgrowl组件的文件。我template在另一个index.xhtml文件中使用它。现在我正在尝试添加一个FacesMessagefrom backing beanin@postconstruct函数。但是我的index.xhtml文件没有显示growl.

模板.xhtml

       <div id="content-wrapper">
            <div id="content" class="template-00-startpage clearfix">                  
                <p:growl id="growl" showDetail="true" sticky="true" />             
            </div>
        </div>

索引.xhtml

<h:body>
    <ui:composition template="/templates/Template.xhtml">
        <ui:define name="leftContent">
            <h:outputText value="#{backingBean.username}"></h:outputText>
        </ui:define>
    </ui:composition>
</h:body>

backingBean.java

@PostConstruct
private void init(){
    username = "testing it";
    FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_INFO, "Info", "Trying to display this message");
    FacesContext.getCurrentInstance().addMessage(null, msg);
    RequestContext requestContext = RequestContext.getCurrentInstance();
    requestContext.update("growl");      
}

我尝试将<p:growl>组件包装进去<h:form id="main">然后更新main:growl,但是它不起作用。

我不明白我做错了什么。是否有必要growl.xhtml文件或通过触发或更新commandButton update="growl"

编辑:我的要求是用来growl显示错误消息。因此我在模板中使用它并且可以从任何支持 bean 更新它。我试图实现它的方式是,

  • growl在模板中。它将在支持 bean 之前得到处理。因此不会显示。
  • 发生错误,我将在模板文件中添加该错误消息FacesMessage并更新我的。growl
  • 什么时候growl更新,我相信它应该会显示出来;但不是,这是我的问题
4

0 回答 0