验证失败时仅显示validatorMessage

时间:2014-03-12 13:11:47

标签: validation jsf-2 primefaces

我有一个包含多个输入文本的注册表单,所有字段都是必需的,某些字段包含validateRegex和验证者消息,如电子邮件的输入文本。

<h:form>
 <p:outputLabel  value="Login:" for="pseudo"/>    
 <p:inputText  id="pseudo" value="#{customerMB.login}" title="Pseudo" required="true" validatorMessage="Enter a valid email" requiredMessage="Please enter your email.">
                                            <f:validateRegex pattern="([^.@]+)(\.[^.@]+)*@([^.@]+\.)+([^.@]+)" />
 </p:inputText>
 <p:watermark for="pseudo" value="Enter you email address" />  
</h:form>

我只需要显示验证器消息而不是必需的消息。我的意思是当我提交表单而不填写字段时,outputLabel用红色突出显示(工作正常)但是当我使用错误形式的电子邮件地址提交时,它没有显示验证器消息。  如果我使用<p:message for="pseudo">,它也会显示所需的消息。

2 个答案:

答案 0 :(得分:2)

我有一个项目,它有一个电子邮件验证,我在这里做了什么:

 <p:inputText  id="pseudo" value="#{customerMB.login}"title="Pseudo" required="true"    validatorMessage="Enter a valid email" requiredMessage="">
     <f:validateRegexpattern="^[_A-Za-z0-9-\+]+(\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\.[A-Za-z0-9]+)*(\.[A-Za-z]{2,})$" />
       <p:ajax event="blur" update="growl"/>
  </p:inputText>

它在离开字段后立即显示验证消息。

答案 1 :(得分:1)

将一个空字符串作为validatorMessage,如下所示:

<p:inputText  id="pseudo" value="#{customerMB.login}" title="Pseudo" required="true" validatorMessage="Enter a valid email" requiredMessage="">
     <f:validateRegex pattern="([^.@]+)(\.[^.@]+)*@([^.@]+\.)+([^.@]+)" />
</p:inputText>