JSF2 - 为同一个字段停止多个验证错误(即只能有一个)

时间:2013-01-17 21:18:48

标签: jsf jsf-2

鉴于facelet中的这个片段:

    <h:messages layout="table"></h:messages>
    <br /><br />
    First Name: 
    <h:inputText styleClass="inputText" id="firstName" validatorMessage="#{msg['error.userEdit.firstName']}">
        <f:validateRequired></f:validateRequired>
        <f:validateLength maximum="50"></f:validateLength>
        <f:validateRegex pattern="^[A-Za-z]+$"></f:validateRegex>
    </h:inputText>

当在表单上运行验证时,我会在我打印的同一邮件的0到3之间,具体取决于该字段的验证规则有多少失败。如何将每个字段限制为单个消息?

为清楚起见,我的错误信息全部包含3个错误,并说“首字母是必需的,不能超过50个字符,并且必须只是字母字符。”所以这就是为什么我只想打印一次。

2 个答案:

答案 0 :(得分:0)

使用<h:message>代替<h:messages>。这样只会显示第一个。

<h:message for="firstName" />

是的,这种方法要求您为每个输入字段而不是单个<h:message>指定<h:messages>。没有其他标准方式。

答案 1 :(得分:0)

应该可以通过一个正则表达式设置此字段

您需要使用此

< f:validateRegex pattern="[A-Za-z]{0,50}" >