1

鉴于 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 个字符,并且只能是字母字符。”,所以这就是为什么我只希望它打印一次。

4

2 回答 2

0

使用<h:message>而不是<h:messages>. 这样只会显示第一个。

<h:message for="firstName" />

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

于 2013-01-17T23:41:46.190 回答
0

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

你需要使用这个

< f:validateRegex pattern="[A-Za-z]{0,50}" >                         
于 2014-05-02T13:48:52.137 回答