前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >解决SpringMVC重定向参数无法携带问题

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

作者头像
用户7630333
发布2023-12-07 19:18:39
1640
发布2023-12-07 19:18:39
举报
文章被收录于专栏:look Javalook Java

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

场景

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

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

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

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

    /**
     * @return 返回模型和视图
     */
    @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=张三 观察测试结果

image-20221213214516083
image-20221213214516083
本文参与?腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-12-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客?前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 解决SpringMVC重定向参数无法携带问题
    • 场景
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
    http://www.vxiaotou.com