zoukankan      html  css  js  c++  java
  • Springmvc 重定向参数传递方式

    Springmvc  通过return "redirect:" 实现重定向   重定向的状态码301  302

    301,302 都是HTTP状态的编码,都代表着某个URL发生了转移,不同之处在于: 
    301 redirect: 301 代表永久性转移(Permanently Moved)。 
    302 redirect: 302 代表暂时性转移(Temporarily Moved )。 
    1.1、什么是301转向?什么是301重定向? 
      301转向(或叫301重定向,301跳转)是当用户或搜索引擎向网站服务器发出浏览请求时,服务器返回的HTTP数据流中头信息(header)中的状态码的一种,表示本网页永久性转移到另一个地址。 
    1.2、什么是302重定向? 
      302重定向又称之为302代表暂时性转移(Temporarily Moved ),英文名称:302 redirect。 也被认为是暂时重定向(temporary redirect),一条对网站浏览器的指令来显示浏览器被要求显示的不同的URL,当一个网页经历过短期的URL的变化时使用。一个暂时重定向是一种服 务器端的重定向,能够被搜索引擎蜘蛛正确地处理。 

    在springmvc实现重定向进行参数传递方式有两种:

         一、在请求地址后面进行拼接

            

     @RequestMapping(value="/save")
        public String  save(){
            return "redirect:update?name=zhangsan&age=23";
        }

    二、采用RedirectAttributes 对象的 addFlashAttribute() 方法将参数数据放到session中session在跳转页面后马上移出对象,在跳转的方法中采用@ModelAttribute接收跳转后的参数

        @RequestMapping(value="/login")
        public String login(String name, String password, RedirectAttributes model){
    
            model.addFlashAttribute("msg",name);
    
            return "redirect:tohome";
        }
    
        @RequestMapping(value = "/tohome")
        public String home(@ModelAttribute String msg,Model model){
            model.addAttribute("msg",msg);
            return "redirect:home";
        }

     对上面关于RedirectAttribute 实现重定向传值方式补充

    采用用上面的方式实现重定向时候 发现无法获取到传递的参数值

    redirectAttr.addFlashAttribute("status","10");
    mv.setViewName("redirect:/user/home");

    正确的接受的方式:  真正的获取到了值得方式  开始的时候我并没有给@ModelAttribute后面添加value   直接采用@ModelAttribute String status 方式 无法获取的值

    当采用@ModelAttribute(value="status") String status 这样就可以获取到值了

        @RequestMapping("home")
        public ModelAndView home(@ModelAttribute(value = "status") String status) {
    }

    在补充一种通过@RedirectAttribute 的addAttribute 方式添加值 

     使用方式  attr.addAttribute("status",10);

     自动会给我们要重定向的Url 后面拼接 ?status=10 进行一个拼接

    以上的都必须是重定向切记




  • 相关阅读:
    欧拉公式
    isap的一些想法
    错误合集
    Hello World
    PAT (Advanced Level) Practice 1068 Find More Coins
    PAT (Advanced Level) 1087 All Roads Lead to Rome
    PAT (Advanced Level) 1075 PAT Judge
    PAT (Advanced Level) 1067 Sort with Swap(0, i)
    PAT (Advanced Level) 1017 Queueing at Bank
    PAT (Advanced Level) 1025 PAT Ranking
  • 原文地址:https://www.cnblogs.com/lwdmaib/p/9429214.html
Copyright © 2011-2022 走看看