SpringMVC 框架把原来 Servlet 中的请求转发和重定向操作进行了封装。现在可以使用简单的方式实现转发和重定向。
请求转发
处理器方法返回 ModelAndView 时,需在 setViewName()指定的视图前添加 forward:,且此时的视图不再与视图解析器一同工作,这样可以在配置了解析器时指定不同位置的视图。视图页面必须写出相对于项目根的路径。forward 操作不需要视图解析器。
处理器方法返回 String,在视图路径前面加入 forward: 视图完整路径。
请求重定向
重定向的写法和转发类似,只是将forward
替换为了redirect
如图
此种写法也是不和视图解析器一同工作的
可以看到 我在重定向时往request域中添加了数据,正常来说重定向属于两次请求,第二次请求是无法获取我添加的数据的。但是MVC框架会将我添加的参数(仅限简单类型)转为字符串类型,附加到目标页面的后面,做get参数传递,可以在目标页面获取到(使用${param.参数名}获取)