springmvc教程-返回ModelAndView实现转发(传递数据)、重定向页面

概述

在 Controller 方法中,也可以返回 ModelAndView 对象,通过该对象可实现 转发(传递数据)、重定向

ModelAndView

该类从名字可以看出,封装 Model 和 view:

  • Model:将传递给jsp的数据,到该类对象中
  • view:视图名

创建对象

ModelAndView mv=new ModelAndView();

设置视图名

mv.setViewName("result");

springmvc视图解析器会起作用,自动拼装 前缀 和 后缀

向jsp传递数据

mv.addObject("username","李雷");

相当于执行:

request.setAttribute("username","李雷");

例子:转发页面

Controller

@RequestMapping("/query")
public ModelAndView query() {
    ModelAndView mv=new ModelAndView();
    mv.addObject("username","李雷");
    mv.setViewName("result");
    return mv;
}

result.html

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
${username}
<%=request.getAttribute("username")%>
</body>
</html>

例子:重定向页面

Controller

@RequestMapping("/query")
public ModelAndView query() {
    ModelAndView mv=new ModelAndView();
    mv.setViewName("redirect:/result.jsp");
    return mv;
}

说明:

mv.setViewName("redirect:/result.jsp"); 实现重定向,此时视图解析器不起作用,所以要写全路径


原文出处:/show_1IX5xtESQYM.html