Javascript SpringMVC:在AJAX调用中从ModelAndView呈现页面
我正在使用SpringMVC构建一个项目。我想将JSON对象从当前页面传输到下一个页面。我所做的是创建一个控制器,通过后AJAX调用将对象发送到该控制器。然后,控制器为存储为jsp的下一页创建一个ModelAndView对象,将该对象添加为所述ModelAndView的属性之一,并返回它。现在我需要重定向到作为ModelAndView返回的页面。以下是相关代码: 控制器:Javascript SpringMVC:在AJAX调用中从ModelAndView呈现页面,javascript,ajax,spring-mvc,jsp,model-view-controller,Javascript,Ajax,Spring Mvc,Jsp,Model View Controller,我正在使用SpringMVC构建一个项目。我想将JSON对象从当前页面传输到下一个页面。我所做的是创建一个控制器,通过后AJAX调用将对象发送到该控制器。然后,控制器为存储为jsp的下一页创建一个ModelAndView对象,将该对象添加为所述ModelAndView的属性之一,并返回它。现在我需要重定向到作为ModelAndView返回的页面。以下是相关代码: 控制器: public ModelAndView nextPageController(@RequestBody String pas
public ModelAndView nextPageController(@RequestBody String passedJsonString) {
ModelAndView nextPage = new ModelAndView("/nextPage.jsp");
nextPage.addObject("passedJsonString", passedJsonString);
return nextPage;
}
AJAX调用:
controllerUrl = "/controller/path";
$.ajax({
type : "POST",
headers : {
'Accept' : 'application/json',
'Content-Type' : 'application/json'
},
url : controllerUrl,
data : JSON.stringify(jsonDataToBePassed),
success : function(dataString) {
console.log(dataString);
}
});
AJAX调用成功执行,ModelAndView对象按预期返回。现在,我需要在控制器中添加的属性保持不变的情况下呈现下一页。我意识到我所做的可能是错误的,并且可能有更好的方法来实现这一点,因此任何关于如何做到这一点的指导都是值得赞赏的 当您对控制器进行ajax调用时,它希望得到一些结果,并在此基础上继续 在您的例子中,响应在控制器成功完成后返回到ajax函数 如果要发送到另一个页面,请在控制器中编写一个方法,并在该控制器方法中返回页面(/nextPage.jsp) 下面是你的代码
success : function(dataString) {
window.location.href = "/path/of/controllerMethod"; //redirect to controller method which returns the jsp page
}
并创建如下方法:
@RequestMapping(value="/path/of/controllerMethod")
public ModelAndView returnJspPageControllerMethod() {
ModelAndView nextPage = new ModelAndView("/nextPage.jsp");
return nextPage;
}