给定这个片段在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>
当在表单上运行验证时,根据字段的验证规则失败的数量,我在my中打印出0-3条相同的消息。如何将其限制为每个字段一条消息?
为清楚起见,我的错误信息包含了所有的3个错误,并说"名字是必需的,不能超过50个字符,并且必须只有alpha字符。",所以这就是为什么我只希望它打印一次。
用<h:message>
代替<h:messages>
。这样只会显示第一个。
<h:message for="firstName" />
是的,这种方法需要您为每个单独的输入字段指定<h:message>
,而不是单个<h:messages>
。没有其他的标准方法
应该可以只设置一个正则表达式
你需要使用这个
< f:validateRegex pattern="[A-Za-z]{0,50}" >