2010-05-27 43 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