2010-05-27 2 views
0

내가 사용JSF 시간 : InputText]를 더블 값

<h:inputText id="costsPerPallet" value="#{globalReportSelectionForm.palletCost}" size="5"> 
    <f:convertNumber pattern="0.00"/> 
</h:inputText> 

palletCost는 더블이다;

"1.00"값을 입력하고 제출하는 것이 좋습니다. 제출하기 전에 "1.00"를 넣을 수있는 좋은 방법입니다 무엇

java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.Double 

: 나는 "1"을 입력하고 제출하면 가 나는 오류가 발생합니다. onblur 자바 스크립트 함수에서? 더 좋은 방법이 있습니까?

답변

1

JSF Mojarra 1.2_14 및 2.0.2에서 올바르게 작동합니다. 그래서 그것은 고대 버전 중 하나의 버그이고 JSF 버전을 업그레이드해야한다고 생각합니다. 명시 적으로 다음과 같이 Double으로 변환 할 수도 있습니다.

<h:inputText converterId="javax.faces.Double"> 

잘 작동하는지 확실하지 않습니다. JSF impl을 최신 빌드로 업그레이드하는 것이 그만한 가치가 있습니다.

+0

감사합니다. JSF를 업그레이드합니다. JBOss, Seam 2.1.2, Richfaces를 사용하고 있습니다. Seam 폴더에서 jsf-api.jar 및 jsf-impl.jar ( Mojarra JSF API 구현 1.2_12-b01-FCS) 을 참조하십시오. 그러나 배포 할 때 jsf-facelets.jar (구현 버전 : 1.1) 만 볼 수 있습니다. : .15.B1) 나는 내가 떠날 것이다 잠시 동안 1.12 로 업그레이드하는 방법으로 모양 심 세대 를 사용하여 내 프로젝트를 만든 이로 인해 오류가 발생했습니다. – Guus