1.在页面跳转时,除了需要指定要跳转的页面地址,我们经常还会带数据传回到jsp页面显示(比如查询用户信息),SpringMVC给我们提供了哪些方式?
2.常用方式如下:
[list]ModelAndView
ModelMap
Map
Model[/list]
以上4种数据都存放在request域中。
详解ModelAndView,因为ModelAndView是最常用的:
1)常用构造方法:
ModelAndView()-无参构造
ModelAndView(String viewName)-指定跳转页面
ModelAndView(String viewName, Map
ModelAndView(String viewName, String modelName, Object modelObject)-指定跳转页面和模型数据

程序员导航
优网导航旗下整合全网优质开发资源,一站式IT编程学习与工具大全网站
常用方法:
void setViewName(String viewName)
String getViewName()
ModelMap getModelMap()
Map
ModelAndView addObject(String attributeName, Object attributeValue)
[v_act]演示:[/v_act]
1)Controller:

2)sccess.jsp:

3)浏览器:

[v_warn]注意:ViewName的使用可以参考前面的跳转方式返回的String写法[/v_warn]
2.注解方式
(1)@ModelAttribute
这个注解有两个用处,第一个就是被该注解注释的方法会在相应的controller中的任何一个方法执行之前执行一遍。

当执行testModelAttribute方法时,SpringMVC会先执行getUser方法,通过map将其得到的user放到请求域中,然后找到名字同样叫user的对象作为入参传递给testModelAttribute方法。这里需要注意的是第一个方法中放入map的key值应该和第二个方法中入参的参数名一致,如果必须不一致的话这里就牵扯到第二个用法了

(2)@SessionAttributes
@SessionAttributes 只能作用在类上,作用是将指定的Model中的键值对添加至session中,方便在下一次请求中使用。

jsp:

浏览器




