资讯 小学 初中 高中 语言 会计职称 学历提升 法考 计算机考试 医护考试 建工考试 教育百科
栏目分类:
子分类:
返回
空麓网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
空麓网 > 计算机考试 > 软件开发 > 后端开发 > Java

解决SpringMVC重定向参数无法携带问题

Java 更新时间: 发布时间: 计算机考试归档 最新发布

解决SpringMVC重定向参数无法携带问题

解决SpringMVC重定向参数无法携带问题

场景

重定向时请求参数会丢失,我们往往需要重新携带请求参数,我们可以进⾏⼿动参数拼接如下:

return "redirect:handle01?name=" + name;
  • 但是上述拼接参数的⽅法属于get请求,携带参数⻓度有限制,参数安全性也不⾼,此时,我们可以使用SpringMVC提供的flash属性机制,
  • 向上下问中添加flash属性,框架会在session中记录该属性值
  • 当跳转到页⾯之后框架会⾃动删除flash属性,不需要⼿动删除,通过这种⽅式进⾏重定向参数传递,参数⻓度和安全性都得到了保障,如下:

下面场景,访问handleRedirect后,我们重定向到其他请求,需要携带name参数。

  @RequestMapping("/handleRedirect")
    public String handRedirect(String name, RedirectAttributes redirectAttributes) {
        // return "redirect:handle01?name"+name; // 这种方式实现 缺点容易过长,不安全等
        redirectAttributes.addAttribute("name", name);
        //  addFlashAttribute⽅法设置了⼀个flash类型属性,该属性会被暂存到session中,在跳转到⻚⾯之后该属性销毁
        return "redirect:handle01";
    }

    
    @RequestMapping("handle01")
    public ModelAndView handle01(@ModelAttribute("name") String name) {
        Date date = new Date();
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.addObject("name", name);
        modelAndView.addObject("data", date);
        modelAndView.setViewName("/success");
        return modelAndView;
    }

浏览器地址栏: http://localhost:8080/demo/handleRedirect?name=张三

观察测试结果

转载请注明:文章转载自 http://www.konglu.com/
本文地址:http://www.konglu.com/it/1093994.html
免责声明:

我们致力于保护作者版权,注重分享,被刊用文章【解决SpringMVC重定向参数无法携带问题】因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,转载此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2023 成都空麓科技有限公司

ICP备案号:蜀ICP备2023000828号-2