J'ai une Carte assortie en Entier. À l'aide de EL, comment puis-je accéder à une valeur par sa clé?
Map<Integer, String> map = new HashMap<Integer, String>();
map.put(1, "One");
map.put(2, "Two");
map.put(3, "Three");
J'ai pensé que cela pourrait fonctionner, mais il n'a pas (d'où la carte est déjà dans la demande attributs):
<c:out value="${map[1]}"/>
Suivi: j'ai traqué le problème. Apparemment ${name[1]}
t une carte de recherche avec le numéro de la Long
. J'ai compris quand j'ai changé de HashMap
de TreeMap
et reçu le message d'erreur:
java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Long
Si je change ma carte:
Map<Long, String> map = new HashMap<Long, String>();
map.put(1L, "One");
ensuite, ${name[1]}
retours "Un". Qu'est-ce que? Pourquoi est - <c:out>
traiter un certain nombre comme une longue. Semble contre-intuitif pour moi (en tant que int est plus couramment utilisé que long).
Donc ma nouvelle question est, est-il un EL notation pour accéder à une carte par un Integer
de la valeur?