如何使用jsp中的键从java映射中获取值,但键是javascript值

如何使用jsp中的键从java映射中获取值,但键是javascript值,java,javascript,jsp,Java,Javascript,Jsp,我有一个jsp页面,在这个页面中,我从请求属性获得一个哈希映射,我想提取一个特定键的值。该键在jsp上可用。如何使用此键从地图中提取ARCT值 我通过将java映射转换为java脚本关联数组来解决这个问题,然后我可以从该数组中获取值。我想分享代码: <% Map<String,String> currencyCodeMap = (Map<String,String>)application.getAttribute("currPrecisionCodeMap");

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

我通过将java映射转换为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>

var map=新数组();
地图['']='';
var currencyCode=document.AccForm.currencyname.options[document.AccForm.currencyname.selectedIndex].text;
警报(映射[货币代码];//给予价值

上面的代码运行良好,但有人能提供更好的解决方案吗???

如果我正确理解您的问题,您可以使用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>
而不是在JSTL中使用它:

${your_key}

为什么不能从JSP端的“currencyCodeMap”访问属性?为了这样的目的混合使用JSP和JavaScript真的很麻烦;JSP完全能够从映射实例中提取值,那么为什么不迭代映射并在scriptlet本身中获取所需的值呢。@Pointy:您能否提供一些代码,说明jsp如何能够从映射中提取值。您可以使用我的example@NiteshMishra:我提到过我从java脚本变量中获取密钥。
${your_key}