我有一个template
包含 primefacesgrowl
组件的文件。我template
在另一个index.xhtml
文件中使用它。现在我正在尝试添加一个FacesMessage
from backing bean
in@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
更新,我相信它应该会显示出来;但不是,这是我的问题