我有以下代码:
<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
所以我认为没有错误。但也许这只是一个简单的误解。 <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/