validation - 验证非必填字段

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

还是不好。有没有人对此案有任何想法?

最佳答案

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

因此,用()包装它并添加?应该可以完成这项工作

尝试

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

关于validation - 验证非必填字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10614651/

相关文章:

java - Spring MVC 无效日期格式错误消息未显示

jsf-2 - Mojarra 2.1.14 flash 范围消息并重定向到不同的路径

java - JSF 保留旧数据

html - 需要帮助在命令按钮中显示图标图像

asp.net-mvc-3 - 如何范围验证整数 ASP.NET MVC 3

php - 表单验证在 php mysql 页面中不起作用,在没有表单验证的情况下移动到表单数据处理 php 文件上?

php - 如何让 Laravel 'confirmed' 验证器向确认字段添加错误?

ajax - 什么是<f :ajax execute ="@all"> really supposed to do?它仅过帐封闭表格

java - JSF @ViewScope,PrimeFaces <p :dialog and <ui:include

java - 单击铅笔调用监听器(primefaces 2.2.1 rowEditor)