Мы разрабатываем веб-страницу с использованием 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;
Теперь нам нужно получить доступ к этой hashMap на нашей странице jsp, в разделе javascript, когда document.ready. Что-то вроде:
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>
};