我想显示以编程方式设置的clientIds的不同FacesMessages。我认为我曾经
<h:outputText value="warnMessages #{facesContext.getMessageList('warnMessages')}" />
<h:outputText value="validationMessages #{facesContext.getMessageList('validationMessages')}" />
用于调试。消息都在那里。但...
<h:messages for="warnMessages" />
<h:message for="warnMessages" />
什么都不显示。只要
<h:messages />
作品。但我想将不同的消息框一起显示。我怎样才能做到这一点?谢谢
马塞尔
最佳答案
您似乎在滥用客户端ID,以将自定义/全局消息与常规验证消息分开。
你不应该那样做。如果要显示自定义/全局消息,只需不指定任何客户端ID。即,将其设置为null
。
context.addMessage(null, facesMessage);
这样,它们都将出现在
<h:messages globalOnly="true" />
并按通常方式使用消息重发。
<h:inputText id="foo" required="true" />
<h:message for="foo" />
要么
<h:messages globalOnly="false" />