我只想有一个
<p:growl id="messages"/>
所以我为整个项目创建了一个表单,其中页面元素等作为主表单中的表单,如下所示。
<h:form id="mainForm">
<p:growl id="messages" showDetail="true" autoUpdate="true" globalOnly="true" for="mainForm"/>
<div id="container">
<div id="banner" >
<a><img src="#{facesContext.externalContext.requestContextPath}/images/logo.png" alt="" border="0" /></a>
<ui:insert name="head">
<ui:include src="/panels/header.xhtml" />
</ui:insert>
</div>
<div id="content">
<ui:insert name="content">
<ui:include src="/panels/main.xhtml" />
</ui:insert>
</div>
<div id="right">
<ui:insert name="right-sidebar">
<ui:include src="/panels/box.xhtml" />
</ui:insert>
</div>
<div id="footer"><h1>Footer</h1></div>
</div>
</h:form>
当其中一个面板出现时,问题就来了。(xhtml) 文件显示一条消息,它未显示在主页的咆哮中。我尝试过,全球和没有运气。
结论:我如何创建一个p:growl一次,来处理我网站的所有消息?
任何建议
提前感谢
你不应该嵌套多个表单(正如你所说的那样)。
尝试封装
<p:growl .../>
在一个表单中包含另一个表单之前标记,并将自动更新属性保留为 true。删除 globalOnly 属性,因为这会影响,仅显示组件 ID "null" 的 FacesMessages:
<h:form id="mainForm">
<p:growl id="messages" showDetail="true" autoUpdate="true"/>
</h:form>
<div id="container">
<div id="banner" >
<a><img src="#{facesContext.externalContext.requestContextPath}/images/logo.png" alt="" border="0" /></a>
<ui:insert name="head">
<ui:include src="/panels/header.xhtml" />
</ui:insert>
</div>
<div id="content">
<ui:insert name="content">
<ui:include src="/panels/main.xhtml" />
</ui:insert>
</div>
<div id="right">
<ui:insert name="right-sidebar">
<ui:include src="/panels/box.xhtml" />
</ui:insert>
</div>
<div id="footer"><h1>Footer</h1></div>
</div>
希望对您有所帮助!
我管理它以使其工作,这很简单,正如我所怀疑的那样,我必须更新处理消息的咆哮声。
<h:form id="mainForm">
<p:growl id="messages" showDetail="true" autoUpdate="true"/>
</h:form>
例如,检查更新方法。
<p:commandButton id="logBut" value="Login" actionListener="#{loginBean.loginUser}" update=":mainForm:message" icon="ui-icon-carat-1-e"/>
它适用于或不具有嵌套表单。