我只是想知道是否有办法使用<h:message>
或<h:messages>
显示多个错误/警告。
例如,使用具有各种输入的PanelGroup:
<h:panelGroup id="pG">
<p:input id="in1">[...]</p:input>
<p:input id="in2">[...]</p:input>
</h:panelGroup>
现在我可以使用<h:message for="in1" style="color:red"/>
来显示输入区域中的错误。但是,有没有办法显示有关面板组的所有消息?这样的事情:<h:messages for="pG" style="color:red"/>
答案 0 :(得分:2)
您可以添加一个方法来获取其子组件
的所有验证消息的列表<ui:repeat var="message" value="#{applicationScopedBeanUtil.getMessages(mybean.pG)}">
<h:outputText value="#{message.summary}" />
</ui:repeat>
<h:panelGroup id="pG" binding="#{mybean.pG}">
<p:input id="in1">[...]</p:input>
<p:input id="in2">[...]</p:input>
</h:panelGroup>
您可以将此方法添加到实用程序类
private List<FacesMessage> getMessages(UIComponent component) {
List<FacesMessage> messages = new ArrayList<FacesMessage>();
Iterator<UIComponent> children = component.getFacetsAndChildren();
if (children != null) {
while (children.hasNext()) {
messages.addAll(FacesContext.getMessages(children.next().getClientId()));
}
}
return messages;
}