jsf h:messages/h:特定clientId的消息

Mar*_*enz 3 jsf message facelets

我想以编程方式设置clientIds来显示不同的FacesMessages.在我看来,我用过

<h:outputText value="warnMessages #{facesContext.getMessageList('warnMessages')}" />
<h:outputText value="validationMessages #{facesContext.getMessageList('validationMessages')}" />
Run Code Online (Sandbox Code Playgroud)

用于调试.消息都在那里.但...

<h:messages for="warnMessages"  />
<h:message for="warnMessages"  />
Run Code Online (Sandbox Code Playgroud)

不显示任何内容.只要

<h:messages />
Run Code Online (Sandbox Code Playgroud)

作品.但是我希望将不同的消息框一起显示出来.我怎样才能做到这一点?谢谢

马塞尔

Bal*_*usC 5

看起来您正在滥用客户端ID以将自定义/全局消息与正常验证消息分开.

你不应该这样做.如果要显示自定义/全局消息,请不要指定任何客户端ID.即,设置它null.

context.addMessage(null, facesMessage);
Run Code Online (Sandbox Code Playgroud)

这样他们都会出现在

<h:messages globalOnly="true" />
Run Code Online (Sandbox Code Playgroud)

并以通常的方式使用消息的重命名.

<h:inputText id="foo" required="true" />
<h:message for="foo" />
Run Code Online (Sandbox Code Playgroud)

要么

<h:messages globalOnly="false" />
Run Code Online (Sandbox Code Playgroud)