af的ADF问题:validateRegExp(绑定长字段)

时间:2012-04-18 14:18:17

标签: oracle-adf webcenter

我在WebCenter环境中有一个portlet应用程序。这个应用程序是使用JSF(使用ADF实现)制作的,所以我有一个类似的字段:

<af:inputText visible="#{CadastrarFormularioContato.showCodigoEc}"
                        label="#{msg.CODIGODOEC}" id="it2" required="true"
                        requiredMessageDetail="#{msg.INFORMECODIGOEC}"
                        showRequired="true"
                        value="#{CadastrarFormularioContato.item.cdEstabelecimento}">                        
                        <af:validateRegExp messageDetailNoMatch="#{msg.CODIGOECSOMENTENUMEROS}" pattern="^[0-9]{1,}$"/>              
                        <af:convertNumber type="number"/>
                        </af:inputText>

但是,当我调用表单提交时,我收到以下错误:

javax.portlet.faces.BridgeException: java.lang.IllegalArgumentException: 'value' is not of type java.lang.String.

我的Object.longField是:

private Long longField

(带有吸气剂/装定者)

我尝试使用convert,convertNumber等但没有成功。

问题是关于“validateRegExp”标签(如果我删除它,有效)那么,为什么?

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

validateRegExp只接受字符串。如果你可以改变java类,那么添加一个String字段以遮蔽Long是一个简单的修复。如果没有,您可以编写自己的正则表达式验证器。