鉴于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个字符,并且必须只是字母字符。”所以这就是为什么我只想打印一次。
答案 0 :(得分:0)
使用<h:message>
代替<h:messages>
。这样只会显示第一个。
<h:message for="firstName" />
是的,这种方法要求您为每个输入字段而不是单个<h:message>
指定<h:messages>
。没有其他标准方式。
答案 1 :(得分:0)
应该可以通过一个正则表达式设置此字段
您需要使用此
< f:validateRegex pattern="[A-Za-z]{0,50}" >