2010-05-27 69 views
0

我使用:JSF H:的inputText及雙值

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

palletCost是雙;

當輸入值「1.00」並提交時很好。 當我輸入「1」,並提交我的錯誤:

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

什麼是之前提交把「1.00」的好辦法。在onblur javascript函數中? 或者還有更好的方法嗎?

回答

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 Implementation 1.2_12-b01-FCS) 但是:部署時只看到jsf-facelets.jar(Implementation-Version:1.1 .15.B1) 我創建使用seam-gen 項目中,我將研究如何將它升級到1.12 就目前而言,我會離開了: 這會導致錯誤。 – Guus 2010-05-28 06:59:15