2010-05-17 13 views
115

के साथ एक मानचित्र के माध्यम से लूप मुझे Map<String, String> के माध्यम से जेएसटीएल लूप होना है और कुंजी और उसके मान का मूल्य आउटपुट करना है।जेएसटीएल

उदाहरण के लिए मेरे पास Map<String, String> है जिसमें कई प्रविष्टियां हो सकती हैं, मैं जेएसटीएल का उपयोग करके इस मानचित्र के माध्यम से लूप करना चाहता हूं और दोनों कुंजी और इसका मूल्य आउटपुट करना चाहता हूं।

मुझे पता है कि कुंजी का उपयोग करके मूल्य का उपयोग कैसे करें, ${myMap['keystring']}, लेकिन मैं कुंजी को कैसे एक्सेस करूं?

+0

संबंधित: http://stackoverflow.com/questions/2117557/how-to-iterate-an-arraylist-inside-a-hashmap-use-jstl – BalusC

उत्तर

255
इस तरह

:

<c:forEach var="entry" items="${myMap}"> 
    Key: <c:out value="${entry.key}"/> 
    Value: <c:out value="${entry.value}"/> 
</c:forEach> 
+11

दूसरों को ध्यान दें: प्रत्येक लूप के लिए var नाम देने का प्रयास न करें "param" – user11153

2

आप अधिक JSTL कार्यक्षमता के लिए एक हैश नक्शा इस

<% 
ArrayList list = new ArrayList(); 
TreeMap itemList=new TreeMap(); 
itemList.put("test", "test"); 
list.add(itemList); 
pageContext.setAttribute("itemList", list);        
%> 

    <c:forEach items="${itemList}" var="itemrow"> 
    <input type="text" value="<c:out value='${itemrow.test}'/>"/> 
    </c:forEach>    

तरह के माध्यम से लूप देख सकते हैं here

+31

स्क्रिपल का उपयोग न करें ETS। वे खराब हैं। – tad

+0

@tad मैंने यह भी सुना है। पर क्यों? –

+6

@ टीजे- एक सामान्य नियम के रूप में, आपके टेम्पलेट्स में शक्तिशाली तर्क डालने के कुछ अच्छे कारण हैं; उन्हें डीबग करना मुश्किल होता है, वे प्रतिमान मिश्रण करते हैं, और वे अप्रत्याशित परिणाम उत्पन्न कर सकते हैं। इसके अलावा, जेएसटीएल अरेडी नक्शे पर साफ-सफाई करने की सुविधा प्रदान करता है: प्रत्येक टैग के लिए। – tad

संबंधित मुद्दे