【问题标题】:Validation for non-required field验证非必填字段
【发布时间】:2012-05-23 18:52:08
【问题描述】:

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

<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 值正在根据您的 进行验证,如果它的值无效,您将获得错误,所以你需要改进你的正则表达式...试试(.+@.+\.[a-zA-Z]+)?顺便说一句,您还可以实现一个验证器类并在服务器端接受空字符串...

标签: validation jsf-2 primefaces


【解决方案1】:

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

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

试试

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

【讨论】:

    猜你喜欢
    • 2021-06-14
    • 1970-01-01
    • 2020-02-27
    • 2014-03-13
    • 2019-07-09
    • 2019-07-11
    • 2013-08-05
    • 2021-06-22
    • 1970-01-01
    相关资源
    最近更新 更多