zoukankan      html  css  js  c++  java
  • springmvc怎么重定向,从一个controller跳到另一个controller

    第一种情况,不带参数跳转:

    方法一:使用ModelAndView 

        return new ModelAndView("redirect:/toList");

          这样可以重定向到toList这个方法

    方法二:在return后直接,redirect 加上要跳转的地址,即可以从第一个controller跳到第二个controller,如下图代码中方法一

    方法三:见蓝色框,只要在return后直接加想要跳到的controller的方法名即可,注意,这个方法名不是RequestMapping里影射的路径,是controller里具体的方法,

    如图片中的3和4,走完3后,他会找到4而不是2(2是RequestMapping里映射的路径),这个像不像Java方法的重载,如下图代码中方法二

    第二种情况,带参数跳转

    方法一:直接在后面用?拼接如图。

    方法二:用RedirectAttributes,这个是发现的一个比较好用的一个类这里用它的addAttribute方法,这个实际上重定向过去以后你看url,是它自动给你拼了你的url。

    使用方法:attr.addAttribute("param", value);

         return "redirect:/namespace/toController";

    这样在toController这个方法中就可以通过获得参数的方式获得这个参数,再传递到页面。过去的url还是和方式一一样的。

    方法三:带参数不拼接url页面也能拿到值(重点是这个)

        @RequestMapping("/save")
        public String save(@ModelAttribute("form") Bean form,RedirectAttributes attr)
                       throws Exception {
    
    
            String code =  service.save(form);
            if(code.equals("000")){
                attr.addFlashAttribute("name", form.getName());  
                attr.addFlashAttribute("success", "添加成功!");
                return "redirect:/index";
            }else{
                attr.addAttribute("projectName", form.getProjectName());  
                attr.addAttribute("enviroment", form.getEnviroment());  
                attr.addFlashAttribute("msg", "添加出错!错误码为:"+rsp.getCode().getCode()+",错误为:"+rsp.getCode().getName());
                return "redirect:/maintenance/toAddConfigCenter";
            }
        }
    
    
      @RequestMapping("/index")
      public String save(@ModelAttribute("form") Bean form,RedirectAttributes attr) throws Exception {
          return "redirect:/main/list";
      }
    //页面取值,直接用el表达式就能获得到,这里的原理是放到session中,session在跳到页面后马上移除对象。所以你刷新一下后这个值就会丢掉。
    //3. 最底层还是两种跳转,只是spring又进行了封装而已,所以说跳转的方式其实有很多很多种,你自己也可以封一个,也可以用最原始的response来,也没有问题。好了,//就到这儿。 其实也没有什么,但是知道了这个就很简单了,之前没搞懂,现在搞懂了,和大家分享。有问题的给我留言。
  • 相关阅读:
    Linux下OpenSSL自签ssl证书
    戌蛤怒触铁铁树
    Python自动化办公-自动化操作Excell-openpyxl
    Python正则表达式
    Django中F查询
    如何知道自家的宽带是多少兆?
    ‘Diango中明明模版的名称写的是对的,但是访问url的时候发现没调用模版’解决方案
    Django中的聚合函数
    Django中的跨关系查询
    【RabbitMQ】零、Windows64位安装
  • 原文地址:https://www.cnblogs.com/henuyuxiang/p/6933381.html
Copyright © 2011-2022 走看看