1.在页面跳转时,除了需要指定要跳转的页面地址,我们经常还会带数据传回到jsp页面显示(比如查询用户信息),SpringMVC给我们提供了哪些方式?
2.常用方式如下:
- ModelAndView
- ModelMap
- Map
- Model
以上4种数据都存放在request
域中。
详解ModelAndView,因为ModelAndView是最常用的:
1)常用构造方法:
ModelAndView()-无参构造
ModelAndView(String viewName)-指定跳转页面
ModelAndView(String viewName, Map
ModelAndView(String viewName, String modelName, Object modelObject)-指定跳转页面和模型数据
常用方法:
void setViewName(String viewName)
String getViewName()
ModelMap getModelMap()
Map
ModelAndView addObject(String attributeName, Object attributeValue)
1)Controller:
2)sccess.jsp:
3)浏览器:
2.注解方式
(1)@ModelAttribute
这个注解有两个用处,第一个就是被该注解注释的方法会在相应的controller中的任何一个方法执行之前执行一遍。
当执行testModelAttribute方法时,SpringMVC会先执行getUser方法,通过map将其得到的user放到请求域中,然后找到名字同样叫user的对象作为入参传递给testModelAttribute方法。这里需要注意的是第一个方法中放入map的key值应该和第二个方法中入参的参数名一致,如果必须不一致的话这里就牵扯到第二个用法了
(2)@SessionAttributes
@SessionAttributes 只能作用在类上,作用是将指定的Model中的键值对添加至session中,方便在下一次请求中使用。
jsp:
浏览器