2012-04-18 66 views
0

我在WebCenter環境中有一個portlet應用程序。這個應用程序是使用JSF(與ADF執行)製成,所以我有一個這樣的領域:ADF問題與af:validateRegExp(綁定長字段)

<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 

(其getter/setter方法)

我嘗試使用convert,便利着想rtNumber等,但沒有成功。

問題是關於「validateRegExp」標記(如果我刪除它,工作)那麼,爲什麼?

有什麼建議嗎?

回答

1

validateRegExp只接受字符串。如果您可以更改java類,那麼添加一個字符串字段來映射Long是一個簡單的修復方法。如果沒有,你可以編寫你自己的正則表達式驗證器。