EL เข้าถึงค่าแผนที่โดยใช้คีย์จำนวนเต็ม
ฉันมีแผนที่ที่คีย์ด้วย Integer เมื่อใช้ 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 …