Spring MVC: невозможно получить значение json в jsp, оно дает 0
Нужна ваша помощь. Я не могу получить строку JSON в JSP после добавления в ModelAndView. После отладки я обнаружил, что он добавлен в instace modelAndView.
Ниже приведен фрагмент кода:
контроллер:
modelAndView.addObject("json-data",jsonhelper.getJSONString(viewData));
JSP
<c:if test="${json-data != null}">
<script type="text/javascript">
window.jsonData =${json-data};
</script>
</c:if>
Здесь viewData - это объект, который мне нужно получить в jsp, но в jsp он дает 0.
1 ответ
Решение
Тире (-
) в json-data
интерпретируется как арифметический оператор minus
,
Согласно спецификации (1.7.1):
Бинарные операторы - A {+,-,*} B
Если A и B равны нулю, вернуть (Long)0
Следовательно json-data
решено 0
, json-data != null
дает истину, и window.jsonData
присваивается значение 0
,
Одним из решений является переименование вашей переменной в jsonData
или любой другой действительный идентификатор Java.
Кроме того, это также будет работать:
window.jsonData = <%= request.getAttribute("json-data") %>