1

javax.el.E​​LException: 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 を使用しています。

4

1 に答える 1

1

それは可能ではありません。として扱われる仕様により、数値は 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 とは無関係であることに注意してください。

于 2012-05-15T04:49:12.747 に答える