我有一个具有此字符串属性的托管 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/