【问题标题】:How to validate numeric strings in inputText with validateRegex in a JSF-Page如何在 JSF 页面中使用 validateRegex 验证 inputText 中的数字字符串
【发布时间】:2019-02-08 06:02:54
【问题描述】:

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

怎么了?有什么想法吗?

【问题讨论】:

  • 如果您希望所有字符都是数字,那么为什么要对 itemNumber 使用 String 类型

标签: regex validation jsf digits


【解决方案1】:

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

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

而不是&lt;f:validateRegex pattern="\d\d\d\d\d\d\d\d\d\d" /&gt;

【讨论】:

  • 谢谢!现在它运行了。 :)
猜你喜欢
  • 2012-03-19
  • 2013-07-25
  • 2015-06-08
  • 2017-11-25
  • 2012-06-16
  • 1970-01-01
  • 2016-03-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多