验证非必填字段

时间:2012-05-16 08:25:05

标签: validation jsf-2 primefaces

我有这些代码行来验证电子邮件地址:

<h:outputText value="#{labels.eMail}: " />
<p:inputText size="30" maxlength="50" validatorMessage="Please provide a valid e-mail address" value="#{personelView.eMail}">
  <f:validateRegex pattern=".+@.+\.[a-zA-Z]+" />
</p:inputText>

当我将电子邮件地址字段留空并提交表单时,它会给出验证错误。为什么JSf这样做?是不是应该只使用上面的代码验证电子邮件字段?我甚至尝试添加:

required="false" 

仍然没有好处。有没有人对这个案子有任何想法?

1 个答案:

答案 0 :(得分:16)

您的inputText值正在针对您的<f:validateRegex pattern=".+@.+\.[a-zA-Z]+" />进行验证,如果其值无效,则会出现错误,因此您需要改进正则表达式以使其符合您的模式或接受空字符串。

所以用()包装并添加?应该可以完成工作

尝试

<f:validateRegex pattern="(.+@.+\.[a-zA-Z]+)?"/>