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

时间:2018-09-03 07:51:44

标签: regex validation jsf digits

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

private String 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 cannot be cast to java.lang.String

怎么了?有什么想法吗?

1 个答案:

答案 0 :(得分:2)

在与您的输入文本字段绑定的后备bean中将变量声明为 Integer / Long / BigDecimal 并使用

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

代替<f:validateRegex pattern="\d\d\d\d\d\d\d\d\d\d" />