java - :validateRegex for not required inputText it's possible?

标签 java validation jsf constraints bootsfaces

我有以下代码:

<b:inputText id="txtBuscarPorCodigo" 
      placeholder="123456-78-90123" 
      col-sm="6" 
      required="true" 
      requiredMessage="Es necesario este dato de la manera en la que se indica"
      rendered="#{miControlador.buscarPor == 'codigo'}"
      value="#{miControlador.miBean.codigo}" 
      label="Código:" >
          <f:validateRegex id="validateRegex" 
                pattern="^([0-9]{4}-[0-9]{2}-[0-9]{5})$" />
</b:inputText>

而且,它有效......但是。如果我删除下面几行:

required="true" 
requiredMessage="Es necesario este dato de la manera en la que se indica"

验证现在不起作用。

你知道一些不需要的地方的代码吗?

我的意思是,我希望用户在什么地方都没有写任何东西,或者按照我的要求准确写。

感谢您的阅读,我对我的拼写感到抱歉,但我不会说英语。

最佳答案

我已尝试重现您的错误。据我所知,验证的工作方式与我实现 <b:inputText /> 时设计的方式完全相同。 .

为了避免误解,我已将重现器上传到 GitHub。这是我们 BootsFaces 展示的一部分。如果您熟悉 Maven,您应该在几分钟内就可以启动并运行它。这是包含重现器的提交:https://github.com/TheCoder4eu/BootsFacesWeb/commit/4633fce03e8984005ae6c0698ade97e5da8d65e8

enter image description here

所以我认为没有错误。但也许这只是一个简单的误解。 <f:validateRegex />无论是否有输入,总是会被检查。如果我理解正确的话,您只想在输入不为空时检查正则表达式。

在这种情况下,我的方法是在正则表达式中包含空字符串,如下所示:

<f:validateRegex pattern="^([0-9]{4}-[0-9]{2}-[0-9]{5})?$" />

(注意问号!)

关于java - :validateRegex for not required inputText it's possible?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51831950/

相关文章:

jsf - 将对话框定位在命令链接的正下方

java - VisualVM 堆转储与探查器不一致

python - 为什么我的 Django 表单没有引发验证错误?

仅使用计数器对数字范围和数字值进行 Java 输入验证

JavaScript 代码不执行 : IsFormValid()

jsf - 如何启用/禁用 primefaces 命令按钮?

java - Icefaces 和 JQuery

java - Swing:JTextField的初始String为空String

java - 什么是 "java.sql.SQLException: No value specified for parameter 1 "?

java - Android:使用 HttpURLConnection 中的进度回调在 Cloudinary 中上传照片