这是我从控制器返回模型对象的方法。
model.addObject("gameSchList", gameSchList);
return model;
我将响应作为JSON输出,因为我使用了Spring JAXB实现。 这是我从Spring控制器获得的输出。
{
"gameSchList":
[
{
"team":
[
{
"alias": "A",
"logo": "A_LOGO"
},
{
"alias": "B",
"logo": "B_LOGO"
}
],
"cName": "AZ",
"id": "58",
"type": "game",
"channel": "713",
"time": "Sun 13:00PM",
"status": "pregame"
}
]
}
现在我想在文档就绪函数中访问此gameSchList。这是我添加到主页的外部js文件。
现在在gameinfo.js中,我创建了一个ready函数,并尝试使用下面的代码访问gameSchList。我在js文件中需要这个要求而不使用jstl。
$(document).ready(function(){
var list = ${gameSchList};
$.each(list, function( index, value ) {
alert( index + ": " + value );
});
});
当我调用此控制器时,它会重定向到我的主页并执行此特定的gameinfo.js,但它给了我这个错误:
SyntaxError:missing;在陈述之前
我尝试了几种方法,但对我来说没有运气。
var list = ${model.gameSchList};
var list = "${model.gameSchList}";
答案 0 :(得分:3)
这是一个可以尝试的解决方案。在你的jsp中声明下面哪个在服务器端进行评估(确保它在jsp中,而不是在外部js文件中)。
<script type="text/javascript">
var responseObject= ${gameSchList};
</script>
现在您可以访问js上的responseObject,并且可以在document.ready函数上使用它。希望这可以帮助。
答案 1 :(得分:0)
在JSP页面上,在服务器上编译,我们可以在with函数中以JSON格式声明JavaScript对象,当浏览器下载并编译此脚本时,它将把JSON内容转换为JavaScript对象:
<script>
var object = JSON.parse('${data}');
<script/>
通过来自Server的Ajax请求下载JavaScript对象的其他方式,浏览器自动将从服务器接收的JSON内容编译到JavaScirpt对象:
.....
sendRequest("moderatorBuildingEntrancePage/updateBuildingLabel/ajax",sendData,
function(event, request, settings) {
var recievedObject = event.result
....