根据处理器方法返回值类型的不同,其具体实现请求转发与重定向的方式不同,但总体差不多。需要请求转发,则在视图名称前添加"forward:",当然请求转发是默认值,不写会按默认值来对待;如果需要重定向,则在视图名称前添加"redirect:"。但需要注意一点,一旦添加了forward或者redirect,则InternalResourceviewResolver内部资源视图解析器的前缀与后缀将不起作用。
一、返回ModelAndView请求转发:
1、请求转发到视图:
2、请求转发到处理器方法:
二、返回ModelAndView重定向:
1、重定向到视图:
2、重定向到处理器方法:
三、返回String请求转发:
四、返回String重定向:
五、返回void时请求转发和重定向以及携带参数可以通过request,response完成。
六、请求转发可以直接携带参数,在页面通过${param.name}可以获取到,如果传递过去的是个实体,可以通过${student}获取到。
七:重定向携带参数问题:
1、使用ModelAndView:
2、使用Model:
这里的Model要区别与ModelAndView里的Model,Model是个接口,而ModelAndView里的Model是个ModeMap的类。
3、使用RedirectAttributes:
使用这个需要在容器里添加mvc注解驱动。
4、使用HttpSession:
使用这个在页面获取参数,应是${name},而不是${param.name}。