在JSF中以编程方式发送几条消息

我有两个地方可以在我的网站上发布消息。 与旁边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" />

但在两种情况下,它都没有显示任何东西。

有任何想法吗?


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));

也可以看看:

  • h:消息在JSF中做什么?
  • jsf h:messages / h:特定clientId的消息
  • 链接地址: http://www.djcxy.com/p/71659.html

    上一篇: Several messages programmatically in JSF

    下一篇: How to create Primefaces radioButtons from List?