Jsf 如何对数值使用f:validateRegex

Jsf 如何对数值使用f:validateRegex,jsf,Jsf,我用这个正则表达式^(\+968 | 968 | 00968)?\d{8}$作为电话号码。它必须是8位数字,以9或7开头 但我得到了一个错误: 无法将java.lang.Integer转换为java.lang.String 在bean中,电话号码是一个整数,这意味着java.lang.Integer不能是需要转换的java.lang.String。f:validateRegex需要一个字符串值(或字符序列,具体取决于JSF实现),因此不能用于整数。因此,您需要在UI中使用字符串值,并在将其保

我用这个正则表达式
^(\+968 | 968 | 00968)?\d{8}$
作为电话号码。它必须是8位数字,以9或7开头


但我得到了一个错误:

无法将java.lang.Integer转换为java.lang.String


在bean中,电话号码是一个
整数
,这意味着java.lang.Integer不能是需要转换的java.lang.String。

f:validateRegex
需要一个
字符串
值(或
字符序列
,具体取决于JSF实现),因此不能用于
整数
。因此,您需要在UI中使用
字符串
值,并在将其保存到数据库之前将其转换为数字。如果您使用的是JPA,那么您可以使用
AttributeConverter
。但我必须说,在我看来,将电话号码存储为数字数据库字段是一个奇怪的选择

另见:


离题:试试看,电话号码一开始不是整数。怎么做?我正在将电话号码保存到数据库中,这是为了注册客户,电话号码在我的数据库中是整数