ELは整数キーでマップ値にアクセスします
整数でキー設定されたマップがあります。ELを使用して、キーで値にアクセスするにはどうすればよいですか? Map<Integer, String> map = new HashMap<Integer, String>(); map.put(1, "One"); map.put(2, "Two"); map.put(3, "Three"); これは機能すると思いましたが、機能しません(マップがすでにリクエストの属性にある場合): <c:out value="${map[1]}"/> フォローアップ:問題を追跡しました。どうやら${name[1]}、番号をとしてマップルックアップを実行しLongます。に変更HashMapしTreeMapてエラーを受け取ったときに、これを理解しました。 java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Long マップを次のように変更した場合: Map<Long, String> map = new HashMap<Long, String>(); map.put(1L, "One"); その後、${name[1]}「One」を返します。それは何ですか?なぜ<c:out>数字を長いものとして扱うのですか。私には直感に反しているようです(intはlongよりも一般的に使用されているため)。 だから私の新しい質問は、Integer値で地図にアクセスするためのEL表記はありますか?