2015-05-05 26 views
1

需要您的幫助。添加modelAndView後,我無法在jsp中獲取json字符串。調試後,我發現它被添加到modelAndView instace中。Spring MVC:無法在jsp中獲取json值,它給出0

下面的代碼片段:

控制器:

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.

+0

那麼,如何理解JavaScript的Java代碼是什麼? – Mukus

+0

它是否在您的控制器中打印? –

+0

你可以在你的jsp中使用這段代碼嗎?' –

回答

3

json-data中的短劃線(-)被解釋爲算術運算符minus

按照spec(1.7.1):

二元運算 - A {+, - ,*}乙

如果A和B都爲空,返回(龍)0

因此json-data被解析爲0json-data != null產生true,和window.jsonData被分配值0

一種解決方案是將您的變量重命名爲jsonData或任何其他有效的Java標識符。

另外,這也將工作:

window.jsonData = <%= request.getAttribute("json-data") %> 
+0

我明白了,但是在文檔 – ved

+0

@ved中提到過,我看了一下,發現我的第一個回答並不完全正確,請參閱已編輯的答案以澄清並參考EL規範。您提到的 – Bewusstsein

+0

鏈接無法正常工作。請給我有效的鏈接。 – ved