regex - 如何在 JSF 页面中使用 validateRegex 验证 inputText 中的数字字符串

标签 regex validation jsf digits

我有一个具有此字符串属性的托管 bean

私有(private)字符串 itemNumber;

在 JSF 中,我想验证输入的长度是否为 10 个字符,并且仅允许数字。输入的前面会有零。例如“0000123456”

<h:inputText value="#{testBean.itemNumber}">
  <f:validateRegex pattern="\d\d\d\d\d\d\d\d\d\d" />
</h:inputText>

输入“asdf123456”时,我将收到一条漂亮的验证消息。 但是输入“0000123456”时我会得到这个异常

java.lang.ClassCastException:java.lang.Long 无法转换为 java.lang.String

出了什么问题?有什么想法吗?

最佳答案

将支持 bean 中绑定(bind)到输入文本字段的变量声明为 Integer / Long / BigDecimal 并使用

<f:validateLength maximum="10" minimum="10" />

而不是 <f:validateRegex pattern="\d\d\d\d\d\d\d\d\d\d" /> .

关于regex - 如何在 JSF 页面中使用 validateRegex 验证 inputText 中的数字字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52145366/

相关文章:

正则表达式 - 阿曼手机号码

java - maxLength 属性不适用于 EditText

javascript - 如何允许字段未定义,同时不允许使用 Yup 进行类型强制?

c# - 验证取消 UpdateSourceTrigger 时如何调用 CanExecute

regex - 使用 Perl 正则表达式解析名称

java - 模式和匹配器的问题

java - JSF 应用程序的 Web 服务

jsf - 如何在新选项卡中打开 PDF 文件

jsf - org.apache.catalina.connector.ClientAbortException : java. io.IOException:管道破裂

c++ - 如何解析包含一系列矩形数据的字符串?