我们正在使用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;
现在,我们需要访问jsp页面中document.ready时javascript部分内的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?
您需要将HashMap
(服务器端)转换为可从Javascript(客户端)访问的内容。目前,JSP只是输出operationFields
HashMap
的字符串值,这不是有效的Javascript语法。将HashMap
转换为Javascript对象文字可能是最简单的。
var operationFields = {
<c:forEach var="entry" items="${operationFields}">
'${entry.key}': '${entry.value}',
</c:forEach>
};