在Spring MVC中使用AJAX渲染View时获得404异常

时间:2014-12-30 11:08:01

标签: java ajax spring jsp spring-mvc

目标:根据用户点击动态将不同的jsp加载到main.jsp的div中。

这是我到目前为止所做的 -

Java脚本

function getPageContent( pageName, containerID, path ){
$.ajax({
     type : "GET",
     url :  "getPageContent/"+pageName+".test",    
     cache : false,
     data: "path=" + path,
     success : function(response) {
         alert(response);
         $("#"+containerID).load( response );
    },
    error: function(xhr, status, error) {
        alert(xhr.responseText);
    }
}); 
}

控制器

@RequestMapping(value="getPageContent/{pageName}")
public String dynamicIncludePage( ModelMap model, @PathVariable String pageName, 
        @RequestParam(value="path") String path,  HttpSession session ){

    if( pageName.equals("manageDashBoard") ){

        List<Report> reports = reportService.getAllReportsByUserID( (int)session.getAttribute("userID") );
        model.addAttribute("reports", reports);
    }


    return path+"/"+pageName;

}

main.jsp中

我正在调用JS方法 getPageContent( 'manageDashBoard', 'containerID', 'home' );

manageDashBoard.jsp的路径是 - &gt; EVIP14ReportSS\src\main\webapp\WEB-INF\views\home\manageDashBoard.jsp

但春天正试图在下面的路径中找到jsp - &gt; EVIP14ReportSS\getPageContent\WEB-INF\views\home\manageDashBoard.jsp

请说明出了什么问题。

由于

1 个答案:

答案 0 :(得分:0)

我不确定你的路径是否正确。无论如何你应该检查一下。 但是你肯定应该改变使用AJAX和Spring渲染页面的方式。 您应该将返回类型从String更改为

public @ResponseBody JsonObjectToRender dynamicIncludePage( ModelMap model, @PathVariable String pageName, 
        @RequestParam(value="path") String path,  HttpSession session )

JsonObjectToRender是具有一些属性的自定义对象。在成功处理程序JsonObjectToRender中,您应该根据该对象分析和呈现页面的一部分。