1

我收到一个 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。

4

1 回答 1

1

那是不可能的。数字在 EL 中按规范处理为Long

如果更改映射键类型不是一个选项,那么您需要创建一个方法,该方法采用 along并将其强制转换为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 无关。

于 2012-05-15T04:49:12.747 回答