SpringMVC重定向及Flash属性

版权声明:本文为博主原创文章,转载请注明出处! https://blog.csdn.net/sinat_34104446/article/details/83043490

目录

重定向及Flash属性

1.重定向

2.Flash属性


重定向及Flash属性

1.重定向

1.返回值是String的时候,重定向是通过在返回地址前加上"redirect:"
2.所有的动态资源被拦截器拦截了,所以需要通过重定向到另一个控制器,由控制器再次进行转发
3.在重定向到控制器的这个过程reqeust传递的数据将会丢失
4.重定向返回值是String示例 

5.返回值是ModelAndView

  • 需要通过RedirectView进行转发地址封装
  • 需要设置ModelAndView的setView为转发的控制器地址
  • 在RedirectView中在请求地址前加不加斜杠代表不同操作,如RedirectView("请求地址")
    • 请求地址加斜杠:代表从服务器根目录下开始追加路径
    • 请求地址不加斜杠:代表从服务器/项目名/下追加路径
  • 如果加了斜杠则需要自己获取项目名
  • ModelAndView可以在参数中进行指定

6.测试不加斜杠

  • 注意是向控制器main发送的请求,main重定向到了toLogin_info,因此地址栏显示的是toLogin_info,而不是直接请求的toLogin_info
  • 代码

  • 发起main请求:效果-成功重定向

7.测试加斜杠

  • 代码

  • 发起main请求:效果-重定向失败404

8.改进加斜杠,动态加载项目名 

2.Flash属性

1.使用重定向之后,在reqeust之中的属性将会丢失,但是可以在控制器方法中指定@RedirectAttributes传递参数,然后通过其的addAttribute进行参数的指定即可
2.使用@RedirectAttributes指定属性之后经过重定向可以使用reqeust.getParameter进行获取 

猜你喜欢

转载自blog.csdn.net/sinat_34104446/article/details/83043490