【问题标题】:jsf h:inputText and Double valuejsf h:inputText 和 Double 值
【发布时间】:2011-02-24 13:02:58
【问题描述】:

我用:

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

palletCost 是一个 Double;

输入值“1.00”并提交时没问题。 当我输入“1”并提交时,我收到错误:

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

在提交之前添加“1.00”的好方法是什么?在 onblur javascript 函数中? 还是有更好的办法?

【问题讨论】:

    标签: jsf


    【解决方案1】:

    在 JSF Mojarra 1.2_14 和 2.0.2 上运行良好。所以我认为这是一个古老版本中的一个错误,你需要升级你的 JSF 版本。您也可以尝试将其显式转换为Double,如下所示。

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

    不确定这是否有效。将您的 JSF impl 升级到最新版本绝对值得。

    【讨论】:

    • 谢谢,我会升级 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)我使用 seam-gen 创建了我的项目我将研究如何将其升级到 1.12 目前我将省略: 这会导致错误。
    • 这可能是在最近的 JSF 版本中重新引入的:stackoverflow.com/questions/54553332/…
    • 看起来是同样的问题。
    猜你喜欢
    • 2011-05-07
    • 2012-06-25
    • 2011-04-17
    • 1970-01-01
    • 1970-01-01
    • 2013-11-23
    • 2013-04-10
    • 2012-12-10
    • 1970-01-01
    相关资源
    最近更新 更多