javax.el.ELException: java.lang.Short cannot be cast to java.lang.Long for the following code:
<ui:param name="aumSegmentType" value="#{segmentSetup.userSegmentTypes[2]}" />
Mojarra 2.1、facelets を使用しています。
それは可能ではありません。として扱われる仕様により、数値は EL で表示され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 とは無関係であることに注意してください。