我们正在使用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?
答案 0 :(得分:1)
您需要将HashMap
(服务器端)转换为可从Javascript(客户端)访问的内容。就目前而言,JSP只是输出operationFields
HashMap
的字符串值,这是无效的Javascript语法。将HashMap
转换为Javascript对象文字可能最简单。
var operationFields = {
<c:forEach var="entry" items="${operationFields}">
'${entry.key}': '${entry.value}',
</c:forEach>
};