6

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

<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" 

还是不行。有人对这个案子有任何想法吗?

4

1 回答 1

18

您的inputText值正在根据您的值进行验证<f:validateRegex pattern=".+@.+\.[a-zA-Z]+" />,如果它的值无效,您会收到错误消息,因此您需要改进您的正则表达式,以便它匹配您的模式或接受空字符串...

所以包装它()并添加一个?应该做的工作

尝试

<f:validateRegex pattern="(.+@.+\.[a-zA-Z]+)?"/>
于 2012-05-16T08:50:10.670 回答