Spring MVC:无法在 jsp 中获取 json 值,它给出 0
Spring MVC : Unable to get json value in jsp, it's giving 0
需要你的帮助。添加 modelAndView 后,我无法在 jsp 中获得 json 字符串。调试后发现在modelAndView instace中添加了
下面是代码片段:
控制器:
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。
json-data
中的破折号 (-
) 被解释为算术运算符 minus
。
根据 spec (1.7.1):
Binary operators - A {+,-,*} B
If A and B are null, return (Long)0
因此 json-data
被解析为 0
,json-data != null
产生 true,并且 window.jsonData
被赋值为 0
.
一个解决方案是将您的变量重命名为 jsonData
或任何其他有效的 Java 标识符。
或者,这也有效:
window.jsonData = <%= request.getAttribute("json-data") %>
需要你的帮助。添加 modelAndView 后,我无法在 jsp 中获得 json 字符串。调试后发现在modelAndView instace中添加了
下面是代码片段:
控制器:
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。
json-data
中的破折号 (-
) 被解释为算术运算符 minus
。
根据 spec (1.7.1):
Binary operators - A {+,-,*} B
If A and B are null, return (Long)0
因此 json-data
被解析为 0
,json-data != null
产生 true,并且 window.jsonData
被赋值为 0
.
一个解决方案是将您的变量重命名为 jsonData
或任何其他有效的 Java 标识符。
或者,这也有效:
window.jsonData = <%= request.getAttribute("json-data") %>