我有一个jsp页面,在这个页面中,我从请求属性中获取了一个哈希映射,我想为特定键提取值。密钥可用于jsp。如何使用此键从地图中取代值?
我通过将java map转换为java脚本关联数组解决了这个问题,然后我可以从该数组中获取值。我想分享一下代码:
<%
Map<String,String> currencyCodeMap = (Map<String,String>)application.getAttribute("currPrecisionCodeMap");
%>
<script language="javascript">
var map = new Array();
<%
for (Map.Entry<String, String> entry : currencyCodeMap.entrySet()) {%>
map['<%=entry.getKey()%>'] = '<%=entry.getValue()%>';
<%}
%>
var currencyCode = document.AccForm.currencyname.options[document.AccForm.currencyname.selectedIndex].text;
alert(map[currencyCode ]);// gives value
</script>
上面的代码工作正常,但是有人可以提供更好的解决方案吗?
答案 0 :(得分:0)
如果我理解你的问题,你在JSP中使用初始化你的hashmap,而不是使用JSTL,你可以迭代它。
<jsp:useBean id="hm" type="java.util.Hashtable<java.lang.Long, java.util.ArrayList<java.lang.String>>" scope="request"/>
<c:forEach items="${hm[key]}" var="item">
<c:out value="${item.value}" />
</c:forEach>
另外,你可以做下一步:
pageContext.setAttribute("key", your_key);
而不是在JSTL中使用它:
${your_key}