在jquery中访问Spring MVC模型对象

时间:2015-03-10 20:36:44

标签: javascript jquery spring spring-mvc jaxb

这是我从控制器返回模型对象的方法。

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}";

2 个答案:

答案 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 
....