首页 > 其他分享 >解决SpringMVC重定向参数无法携带问题

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

时间:2022-12-13 21:56:47浏览次数:42  
标签:return 重定向 SpringMVC 携带 参数 modelAndView handle01 name

解决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";
    }

    /**
     * @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

标签:return,重定向,SpringMVC,携带,参数,modelAndView,handle01,name
From: https://www.cnblogs.com/look-word/p/16980746.html

相关文章

  • SpringMVC-day01
    SpringMVC_day01今日内容理解SpringMVC相关概念完成SpringMVC的入门案例学会使用PostMan工具发送请求和数据掌握SpringMVC如何接收请求、数据和响应结果掌握RESTfu......
  • springMvc4-第一个spring mvc项目
    一个SpringMVC的项目如何创建?请看这里。代码编辑器:IntellijIDEA请提前在电脑上配置好自己的tomcat!该文属于小白教程,适合初学者。1创建SpringMVC项目第一步,点击新建项目......
  • springMvc32-原生apiSpring MVC过滤器-HiddenHttpMethodFilter
    浏览器form​​表单​​只支持GET与POST请求,而DELETE、PUT等method并不支持,spring3.0添加了一个过滤器,可以将这些请求转换为标准的http方法,使得支持GET、POST、PUT与DELETE......
  • springmvc常用标签库
    input标签相当于text<form:inputpath="username"/></td>password标签<form:passwordpath="password"/>hidden标签<form:hiddenpath="id"/>textarea标签是一个支持多行输......
  • python3中requests库重定向获取URL
     importrequestsdefrequest_jd():url='http://jd.com/'#allow_redirects=False这里设置不允许跳转response=requests.get(url=url,allow_redirects=False......
  • 宝塔:删除了301重定向配置网站蜘蛛还是301跳转怎么办?
    场景描述:上次看到一篇有关权重聚合的文章,在不明所以的情况下,擅自修改了重定向,导致网站收录狂跌;蜘蛛记录如下:  百度站长诊断确是OK的,返回200; 使用爱站站长工具进......
  • 使用Eclipse构建Maven的SpringMVC项目
    使用Eclipse构建Maven的SpringMVC项目首先Eclipse需要安装Maven的插件,地址:http://m2eclipse.sonatype.org/sites/m2e。用MyEclipse安装Maven插件,......
  • Linux 下的输入输出和重定向示例
    Linux下的输入输出和重定向示例作者:Grey原文地址:博客园:Linux下的输入输出和重定向示例CSDN:Linux下的输入输出和重定向示例说明Linux下的输入输出有如下三种形式......
  • SpringMVC执行流程
    1.用户发送请求到前端控制器(DispatherServlet)2.前端控制器(DispatherServlet)再找到处理器映射器(HandlerMapping)3.处理器映射器(HandlerMapping)返回给前端控制器(Dispat......
  • Spring,SpringMVC,SpringBoot,SpringCloud有什么区别和联系?
    简单介绍Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。Spring使你能够编写更干净、更可管理、并且更易于测试的代码。SpringMVC是Spring的一个模块,一......