【发布时间】:2013-01-24 16:00:18
【问题描述】:
我只想要一个
<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 来处理我网站的所有消息?
任何建议
提前谢谢
【问题讨论】:
-
问题可能是
FacesMessages 的排队方式。在这些面板中,您是否使用特定客户端 ID 对消息进行排队? -
我在有和没有特定客户端 ID 的情况下都这样做了,但在这种情况下我仍然没有工作:FacesContext.getCurrentInstance().addMessage("mainForm", new FacesMessage(severity, title, msg)) ;但任何改变。
-
是
mainForm一个组件还是<h:form/>?我没有看到(或尝试过)为表单排队消息。改用表单中的特定组件 -
and so on as forms inside the main one你在嵌套表单吗?你不应该这样做 -
globalOnly="true"指定您只想显示未附加到任何元素 id 的消息,因此您正在进一步缩小范围。
标签: java forms jsf primefaces messages