2014-02-18 59 views
1

我正在使用facelets創建表單。一個輸入字段是這樣的:一個輸入字段的多個錯誤消息

<p:inputText id="initials" value="#{dilution.initials}" /> 

dilution是一個實體bean和縮寫字段上設置兩個驗證約束。一個大小約束和一個正則表達式模式約束。我的問題是獲取兩個約束的錯誤消息以在輸入字段旁邊顯示。使用<h:message>只顯示其中一條消息,並使用<h:messages>顯示所有輸入字段的錯誤信息或無(當我嘗試設置<h:messages for="initials" autoUpdate="true" />時)。

有沒有簡單的方法來做到這一點?

的完整形式:

<h:form id="addDilForm"> 
    <p:panel> 
     <p:messages autoUpdate="true" showDetail="TRUE" /> 
    <p:panelGrid> 
     <f:facet name="header" > 
      <p:row><p:column colspan="3">Ny spädningsfaktor</p:column></p:row> 
     </f:facet> 

     <p:row> 
      <p:column colspan="1"> 
       <p:outputLabel for="sampT">Provtyp</p:outputLabel> 
      </p:column> 
      <p:column> 
       <p:selectOneMenu id="sampT" required="true" value="#{dilution.dilution.sampleType.ID}" > 
        <f:selectItem itemLabel="-" itemValue="" /> 
        <f:selectItems value="#{SampleTypeController.samples}" var="samp" itemLabel="#{samp.name}" itemValue="#{samp.ID}" /> 
       </p:selectOneMenu> 
      </p:column> 
      <p:column> 
       <p:message for="sampT" /> 
      </p:column>           
     </p:row> 

     <p:row> 
      <p:column> 
       <p:outputLabel for="initials">Initialer</p:outputLabel> 
      </p:column> 
      <p:column > 
       <p:inputText id="initials" value="#{dilution.initials}" /> 
      </p:column> 
      <p:column> 
       <p:message for="initials" /> 
      </p:column>         
     </p:row> 

     <f:facet name="footer"> 
      <p:row> 
       <p:column colspan="3"> 
        <p:commandButton value="Save" action="#{dilution.save()}" update="addDilForm" icon="ui-icon-check" />         
       </p:column> 
      </p:row> 
     </f:facet> 
    </p:panelGrid> 
    </p:panel> 
</h:form> 

回答

1

使用<h:message>只顯示消息

的一個只需使用<h:messages>與複數的 「s」 而不是<h:message>同時保持for屬性。

<h:messages for="initials" /> 

<p:messages>的工作方式相同,只是用不同的UI。

+0

我試過但沒有顯示任何東西。那就是我把''放在我現在有<'的地方。我是否需要設置/更改其他內容才能使其工作? – numfar

+0

Okey,當我嘗試時,我發現它適用於''而不是''。但是我想用'',應該可以嗎? – numfar