我有以下几行代码可用于验证电子邮件地址:
<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"
还是不好。有没有人对此案有任何想法?
最佳答案
您的inputText
值正在针对您的<f:validateRegex pattern=".+@.+\.[a-zA-Z]+" />
进行验证,如果它的值无效,则会出现错误,因此您需要改进正则表达式,使其与您的模式匹配或接受空字符串...
因此,用()
包装它并添加?
应该可以完成这项工作
尝试
<f:validateRegex pattern="(.+@.+\.[a-zA-Z]+)?"/>
关于validation - 验证非必填字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10614651/