2014-02-18 34 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