必备知识:
SpringMVC 中的重定向与转发:
转发:forward:+ url。请求转发类型是不会变的,比如post 请求,那么转发后调用的方法也是post 请求类型。
重定向:redirect:+ url。重定向后是发起一个新的Get 请求,model 中的属性和值以参数形式附加在get 请求的url 上。原来的请求和模型消失。
这里讨论重定向如何带参数的两种方式:
1.通过url 中使用占位符,只限String 和数字值。
2.使用flash 属性,支持对象。原理是重定向前把model 数据保存在session 中,重定向后取出。
1.通过url 中使用占位符,只限String 和数字值。
/**
* 带参数重定向:redirect:重定向时原始的请求结束,然后会发起一个新的GET请求。原请求中的model模型数据也跟随原来的请求一起消失,而转发的model不会消失。
* 1.如果model属性值不为null,则在重定向路径中会自动以get的参数添加到重定向的url上
* 2.如果有{},其中占位符的参数是model的属性,则会将不安全字符进行转义。只允许是String和数字值。。
* 3.使用flash属性,可以传对象
*/
@RequestMapping(value = "/register1", method = RequestMethod.POST)
public String processRegistration1(@Valid Student student, BindingResult bindingResult,