我有两个地方可以在我的网站上留言。与备用div相关的消息和与主容器相关的消息。
我在同一页面中同时使用这两个h:消息(它的表单有prependId=false,没有id,因此消息id不附加于其他消息):
<h:messages id="container-messages" infoClass="info-message" warnClass="warn-message" errorClass="error-message" globalOnly="false" />
<h:messages id="aside-messages" infoClass="info-message" warnClass="warn-message" errorClass="error-message" globalOnly="false" />然后,在我的Java代码中,我使用它来打印一些消息:
facesContext.addMessage("container-messages", new FacesMessage(FacesMessage.SEVERITY_INFO, "one message", null));第一个问题是,这是可行的,但它打印的消息在两个,而不仅仅是在容器-消息。
后来,我用:
<h:message id="container-messages" infoClass="info-message" warnClass="warn-message" errorClass="error-message"/>
<h:message id="aside-messages" infoClass="info-message" warnClass="warn-message" errorClass="error-message" />并试图:
<h:message for="container-messages" infoClass="info-message" warnClass="warn-message" errorClass="error-message"/>
<h:message for="aside-messages" infoClass="info-message" warnClass="warn-message" errorClass="error-message" />但在这两种情况下,它都没有显示任何东西。
有什么想法吗?
发布于 2013-12-29 00:21:51
h:messages用于所谓的全局消息,这些消息与特定组件无关,因此这里不允许使用for属性。
h:message用于与特定组件相关的消息,因此需要for属性,这意味着需要将组件绑定到。
为了达到目标,您可以使用绑定到某个组件的两个h:message元素(例如,空h:grapicImage),方法如下:
<h:graphicImage id="someID" />
<h:message for="someID" id="container-messages" infoClass="info-message"
warnClass="warn-message" errorClass="error-message"/>
<div>
stuff
</div>
<h:message for="someID" id="aside-messages" infoClass="info-message"
warnClass="warn-message" errorClass="error-message" />以您已经描述的方式添加消息:
facesContext.addMessage("container-messages", new
FacesMessage(FacesMessage.SEVERITY_INFO, "message1", null));
facesContext.addMessage("aside-messages", new
FacesMessage(FacesMessage.SEVERITY_INFO, "message2", null));还请参见:
https://stackoverflow.com/questions/20820155
复制相似问题