2013-03-13 41 views
0

我只是想知道是否有方法顯示多個錯誤/警告與<h:message><h:messages><h:messages>關於多個ID或父母ID

例如,採取與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"/>

回答

1

您可以添加一個方法來獲取所有的子組件的驗證消息的列表,

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

那麼,我從來沒有想過在一個Bean中這樣做。謝謝你,好主意! – Tobias 2013-03-14 10:15:47