在javascript中加载从控制器传递的hashMap对象?

时间:2013-12-02 11:20:09

标签: jquery spring-mvc hashmap

我们正在使用Spring MVC开发一个网页。 在我们的一个控制器中,我们有一个HashMap,我们应该发送给我们的jsp,如:

ModelAndView model = sisoController.getGenericModelAndView(request);

HashMap<String, boolean> hashMap = new HashMap<String, boolean>();
hashMap.put("name", true); 
hashMap.put("surname", false); //... and so on

model.addObject("operationFields", hashMap);

model.setViewName("createOperation.html");
return model;

现在,我们需要在document.ready中的javascript部分内的jsp页面中访问这个hashMap。类似的东西:

    var operationFields= ${operationFields};
    $.each(operationFields, function(key, value) {
        console.log(key + ": " + value);
    });

但是这会回应以下错误:

SyntaxError: missing : after property id

var operationFields= {name=true, surname=false};

我们如何访问hashMap?

1 个答案:

答案 0 :(得分:1)

您需要将HashMap(服务器端)转换为可从Javascript(客户端)访问的内容。就目前而言,JSP只是输出operationFields HashMap的字符串值,这是无效的Javascript语法。将HashMap转换为Javascript对象文字可能最简单。

var operationFields = {
<c:forEach var="entry" items="${operationFields}">
    '${entry.key}': '${entry.value}',
</c:forEach>
};