<h:messages> 在多个 ID 或父 ID 上



我只是想知道是否有一种方法可以显示<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"/>

您可以添加一个方法来获取其子组件的所有验证消息列表,

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

相关内容

  • 没有找到相关文章

最新更新