【问题标题】:getting 404 exception while rendering a View using AJAX in Spring MVC在 Spring MVC 中使用 AJAX 渲染视图时出现 404 异常
【发布时间】:2014-12-30 11:08:00
【问题描述】:

目标:根据用户点击动态加载不同的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 的路径是 --> EVIP14ReportSS\src\main\webapp\WEB-INF\views\home\manageDashBoard.jsp

但是spring正在尝试在下面的路径中定位jsp --> EVIP14ReportSS\getPageContent\WEB-INF\views\home\manageDashBoard.jsp

请提出问题所在。

谢谢

【问题讨论】:

  • 您从 ajax 前端发送的路径变量的值是多少?我认为可能有一些问题。

标签: java ajax spring jsp spring-mvc


【解决方案1】:

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

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

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

【讨论】:

  • 当然 JsonObjectToRender 也可以是 String。例如返回“OK”。在成功处理程序中 if(response === "OK"){$( "#myDiv" ).innerHtml('someHTML')}
最近更新 更多