【问题标题】:In facelets, how do I fetch from a HashMap where keys are of DataType Short在facelets中,如何从键为DataType Short的HashMap中获取
【发布时间】:2012-05-22 13:19:17
【问题描述】:

我得到一个 javax.el.E​​LException: java.lang.Short cannot be cast to java.lang.Long 以下代码:

<ui:param name="aumSegmentType" value="#{segmentSetup.userSegmentTypes[2]}" />

我正在使用 Mojarra 2.1,facelets。

【问题讨论】:

    标签: jsf-2 facelets el


    【解决方案1】:

    这是不可能的。数字在 EL 中被specification 视为Long

    如果更改映射键类型不是一个选项,那么您需要创建一个方法,该方法接受 long 并将其转换为 short

    public SomeObject getUserSegmentType(long key) {
        return userSegmentTypes.get((short) key);
    }
    

    按如下方式使用

    <ui:param ... value="#{segmentSetup.getUserSegmentType(2)}" />
    

    我当然假设您的环境已经支持 EL 2.2。鉴于您使用的是 JSF 2.1,它应该是这样的。

    请注意,此问题与 JSF/Facelets 无关。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-25
      • 2013-04-21
      • 2012-08-09
      • 2010-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多