繁体   English   中英

JavaScript中的Spring MVC modelAndView对象

[英]Spring MVC modelAndView object in javascript

问题:我有一个简单的控制器,可以向我返回一个硬编码位置列表。 当我想使用$ .get在我的javascript文件中获取位置并在控制台中打印它时,我得到一些奇怪的“未定义”结果。

控制器:

@RestController
@RequestMapping("/locationOverview")
public class LocationOverviewController {

    private LocationGuide service;

    public LocationOverviewController() {
        this.service = new LocationGuide("Memory");
    }

    @RequestMapping(method = RequestMethod.GET)    
    protected ModelAndView getLocations() {
        ArrayList<Location> locations = new ArrayList<Location>();
        locations.add(new Location(1,"KHL",new Geolocation(51,51)));
        locations.add(new Location(2,"KUL",new Geolocation(51,51)));

        return new ModelAndView("locationOverview", "locations", locations);
    }

}

mapScript JS:

function initialize() {
    $.get("locationOverview.htm", function(data){
        for(var i=0; i<data.length; i++){
            console.log(data[i].name);
        }
    })
}

JSP文件:

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@page import="domain.Location"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Leuven Speaks</title>
        <script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js'></script>
        <script type="text/javascript" src="<c:url value="/js/mapScript.js" />"></script>
    </head>
    <body onload="initialize()">

        <jsp:include page="header.jspf"/>
    </body>  
</html>

您实际上应该使用开发工具检查数据包含的内容。 您显示给我们的控制器方法似乎不是映射到locationOverview.htm 如果要使用ajax查询数据,请使用@ResponseBody批注返回列表。

在模型中传递的数据将在您定义为ModelAndView中的视图的JSP页面中可用。

一些学习资源:

http://www.beingjavaguys.com/2014/05/json-response-with-responsebody_31.html

https://developer.chrome.com/devtools/docs/javascript-debugging

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM