原文链接: springmvc ModelAndView 视图模型
上一篇: springmvc 路由 匹配 和 restful api 的实现
下一篇: springmvc @Autowired @Resource
1. ModelAndView是什么以及它的作用是什么
用于封装需要响应到页面的数据和视图名字
- 简单理解它是将后台返回的数据传递给View层,同时包含一个要访问的View层的URL地址
- 当控制器处理完请求后,通常控制器会将包含视图名称以及一些模型属性的ModelAndView对象返回给DispatcherServlet。因此,在控制器中会构造一个ModelAndView对象
- ModelAndView作用
- 设置转向地址
- 将底层获取的数据进行存储(或者封装)
- 最后将数据传递给View
可以携带信息
modelAndView.addObject("message", "Hello World, Hello Kitty");
简单跳转,前端提交表单,后端验证后跳转不同的页面,并传递信息
form
<form action="http://localhost:8080/login" method="post">
<input name="name">
<input name="age">
<button type="submit">login</button>
</form>
suc,err .jsp
<h1>
${msg}
</h1>
login 根据不同的数据,跳转不同的页面,视图后缀可以省略jsp
@RequestMapping("/login")
public ModelAndView login(
HttpServletRequest request, HttpServletResponse response) {
String name = request.getParameter("name");
String age = request.getParameter("age");
System.out.println("login:" + name + " age:" + age);
if (name.equals("root"))
return new ModelAndView("suc", "msg", "登录成功");
return new ModelAndView("err", "msg", "登录失败");
}
设置重定向
return new ModelAndView("redirect:http://www.baidu.com");