当前位置: 首页 > article >正文

springmvc 重定向调节数据方法

在 Spring MVC 中,进行重定向并携带数据可以通过多种方式实现。以下是其中两种常见的方法:

方法一:使用 RedirectAttributes

RedirectAttributes 是 Spring MVC 提供的一个专门用于在重定向过程中传递数据的工具类。它允许在控制器方法中设置需要传递的数据,然后在重定向目标页面中获取这些数据。

  1. 在控制器方法中使用 RedirectAttributes 设置数据:

    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.servlet.mvc.support.RedirectAttributes;
    
    @Controller
    public class MyController {
    
        @RequestMapping("/redirectWithAttribute")
        public String redirectWithAttribute(RedirectAttributes attributes) {
            // 设置需要传递的数据
            attributes.addAttribute("message", "Data from redirectWithAttribute");
    
            // 重定向到目标页面
            return "redirect:/targetPage";
        }
    }
    
  2. 在重定向目标页面的控制器方法中获取数据:

    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    @Controller
    public class TargetController {
    
        @RequestMapping("/targetPage")
        public String targetPage(Model model) {
            // 从重定向的数据中获取信息
            String message = (String) model.asMap().get("message");
    
            // 在目标页面中使用数据
            model.addAttribute("message", message);
    
            return "targetPage";
        }
    }
    

方法二:使用路径变量传递数据

另一种传递数据的方式是通过路径变量。这种方式通常适用于较小的数据,例如ID或简短的字符串。

  1. 在控制器方法中使用路径变量传递数据:

    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    @Controller
    public class MyController {
    
        @RequestMapping("/redirectWithPathVariable/{message}")
        public String redirectWithPathVariable(@PathVariable String message) {
            // 重定向到目标页面,并将数据作为路径变量传递
            return "redirect:/targetPage/" + message;
        }
    }
    
  2. 在重定向目标页面的控制器方法中获取路径变量:

    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.PathVariable;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    @Controller
    public class TargetController {
    
        @RequestMapping("/targetPage/{message}")
        public String targetPage(@PathVariable String message, Model model) {
            // 在目标页面中使用路径变量传递的数据
            model.addAttribute("message", message);
    
            return "targetPage";
        }
    }
    

这两种方法各有优劣,具体选择取决于您的需求和偏好。使用 RedirectAttributes 的方式更加灵活,适用于传递多个数据项,而使用路径变量传递数据则更加直观简单。


http://www.kler.cn/a/153784.html

相关文章:

  • 经验分享:JMeter控制RPS
  • 详细学习PyQt5与数据库交互
  • SQL Server 2016(在Products表中查询数据)
  • Windows端口映射/转发功能
  • 【LeetCode】栈和队列OJ题---C语言版
  • re:Invent大会,亚马逊云科技为用户提供端到端的AI服务
  • matlab操作方法(二)——基本作图
  • 景联文科技数据标注平台助力AI数据实现价值最大化
  • VScode异常处理 (因为在此系统上禁止运行脚本)
  • 深度学习实战63-利用自适应混合金字塔网络实现人脸皮肤美颜效果,快速部署与实现一键美颜功能
  • linux上编写进度条
  • HarmonyOS 开发案例分享:万能卡片也能用来玩游戏
  • JS数据类型
  • 22.Python 操作目录
  • java树结构工具-TreeUtil
  • Python之Appium 2自动化测试(Android篇)
  • vue中实现纯数字键盘
  • 3.3 路由器的远程配置
  • Python标准库:random库【侯小啾python领航班系列(十七)】
  • docker 安装elasticsearch集群