2012-04-18 2 views
0

WebCenter env에 포틀릿 응용 프로그램이 있습니다. 이 응용 프로그램은 (ADF를 구현과) JSF를 사용하여 만든, 그래서 나는 같은 필드가 있습니다 : 나는 양식을 호출 할 때 내가 추적 오류가 나타납니다 제출,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 

, 금연실,

rtNumber 등은 있지만 성공하지 못했습니다.

문제는 "validateRegExp"태그에 관한 것입니다 (제거하면 작동 함). 그렇다면 왜?

의견이 있으십니까?

답변

1

validateRegExp는 문자열 만 허용합니다. 자바 클래스를 변경할 수 있다면 String 필드를 추가하여 Long을 쉐도우하는 것이 쉬운 문제입니다. 그렇지 않다면, 당신은 당신 자신의 regex validator를 작성할 수 있습니다.