Java 如何在JSP中循环使用HashMap?
如何在JSP中循环使用Java 如何在JSP中循环使用HashMap?,java,jsp,loops,hashmap,Java,Jsp,Loops,Hashmap,如何在JSP中循环使用HashMap <% HashMap<String, String> countries = MainUtils.getCountries(l); %> <select name="country"> <% // Here I need to loop through countries. %> </select> 根据您希望在循环中完成的内容,请迭代其中一项: co
HashMap
<%
HashMap<String, String> countries = MainUtils.getCountries(l);
%>
<select name="country">
<%
// Here I need to loop through countries.
%>
</select>
根据您希望在循环中完成的内容,请迭代其中一项:
countries.keySet()
countries.entrySet()
countries.values()
for (Map.Entry<String, String> entry : countries.entrySet()) {
String key = entry.getKey();
String value = entry.getValue();
// ...
}
因此,您的特定问题可以通过以下方式解决:
${country.value}
您需要一个Servlet
或ServletContextListener
将${countries}
放置在所需的范围内。如果此列表应基于请求,则使用Servlet
的doGet()
:
在这两种情况下,国家
将在${countries}中提供
希望这有帮助
另见:
- 下面的代码对我很有用
首先,我在服务器端定义了
partnerTypesMap
,如下所示
Map<String, String> partnerTypes = new HashMap<>();
在呈现页面时,我使用下面的foreach
逐个打印它们
<c:forEach items="${partnerTypesMap}" var="partnerTypesMap">
<form:option value="${partnerTypesMap['value']}">${partnerTypesMap['key']}</form:option>
</c:forEach>
${partnerTypesMap['key']}
顺便说一句,HashMap
本质上是无序的。您确定不需要TreeMap
(按键自动排序)或LinkedHashMap
(维护插入顺序)?是的,通过此设置,我可以获得所有键集,但如何将其集成到html的选择字段中?这并没有回答特定的问题JSP@Khue:是的,您还可以在会话中放置属性。我只是不明白为什么要在多个会话中复制应用程序范围的数据。我认为是基于会话的信息。谢谢你非常好的解释。我相信答案是显而易见的,但是-为什么Scriptlet被认为是糟糕的实践?在由于维护遗留应用程序而缺少JSTL的情况下,这是我唯一的选择。@Zibbobz:文本“糟糕的做法”是一个链接。点击它。
Map<String, String> partnerTypes = new HashMap<>();
model.addAttribute("partnerTypesMap", partnerTypes);
<c:forEach items="${partnerTypesMap}" var="partnerTypesMap">
<form:option value="${partnerTypesMap['value']}">${partnerTypesMap['key']}</form:option>
</c:forEach>