1

我有一个 jsp 页面,在这个页面中,我从请求属性中获取了一个哈希映射,并且我想提取特定键的值。密钥在 jsp 上可用。如何使用此键从地图中提取值?

我通过将 java map 转换为 java script 关联数组来解决这个问题,然后我可以从该数组中获取值。我想分享代码:

<%
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>

上面的代码工作正常,但有人可以提供更好的解决方案吗?

4

1 回答 1

0

如果我正确理解您的问题,您可以使用 JSP 在 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}
于 2013-07-11T13:01:59.060 回答