在controller类里边的方法中是有默认的参数的,形参如果是默认的参数的话处理器适配器会默认识别并且进行赋值。
1. 后台获取页面的数据
形参类型 | 作用 | 方法 |
---|---|---|
* HttpServletRequest | 通过request对象获取请求信息 | request.getParameter(" ") |
* HttpServletResponse | 通过response处理响应信息 | … |
* HttpSession | 通过session 对象得到 | session.getAttribute(" ") |
页面:
后台获取:
2. 后台向页面传递数据
2.1 ModelAndView
利用ModelAndView来想页面传递参数
//创建ModelAndView对象
ModelAndView mav = new ModelAndView();
//设置模型数据
mav.addObject("msg","hahahahahaha!");
mav.setViewName("hello");
return mav;
ModelAndView 主要使用的就是添加参数 addObject()和
设置视图setViewName()
设置完以后直接返回该对象视图解析器会自动解析。
2.2 Model
使用Model向页面传递数据,Model是一个接口, 在参数里直接声明model即可。
若使用Model则可以不用ModelAndView, 可以用Mode对象想页面传递数据, View对象则可以使用String返回值替代。视图解析器也会自动解析。
这种方式需要两者结合使用。 比较常用
如下示例:
- 总结: 不论是Model还是ModelAnView , 本质上都是使用Request对象向jsp传递数据。 (在页面用request对象可以获得model对象放入的object的 值,这点也可证明上述结论)
显示结果
2.2 ModelMap
ModelMap是Model接口的实现类,也可以通过ModelMap向页面传递数据。
使用Model和ModelMap的效果是一样的,上面也说了Model是一个接口,而我们在实例化Model的时候,实例化的正式他的实现类ModelMap。故两者是一样的效果。代码如下所示:
过程中发现一个小问题 , 下篇分析request.getParameter() 和 reqeust.getAttribute() 的区别 因为今天跳了这个小坑.