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 的方式更加灵活,适用于传递多个数据项,而使用路径变量传递数据则更加直观简单。

相关推荐

  1. springmvc 定向调节数据方法

    2023-12-05 16:18:03       39 阅读
  2. SpringMVC转发和定向

    2023-12-05 16:18:03       13 阅读
  3. CentOS:定向及nohup不输出的方法

    2023-12-05 16:18:03       27 阅读
  4. Vue3 置&覆盖 reactive 数组数据方法

    2023-12-05 16:18:03       23 阅读
  5. js多种数组方法

    2023-12-05 16:18:03       31 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-05 16:18:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-05 16:18:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-05 16:18:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-05 16:18:03       18 阅读

热门阅读

  1. paddle 语谱图对比

    2023-12-05 16:18:03       34 阅读
  2. Flask 快速入门

    2023-12-05 16:18:03       42 阅读
  3. uniapp搭建内网映射测试https域名

    2023-12-05 16:18:03       46 阅读
  4. flask五小时快速入门资料记录

    2023-12-05 16:18:03       48 阅读
  5. Leetcode 2949. Count Beautiful Substrings II

    2023-12-05 16:18:03       41 阅读
  6. tortoisegit 报错:server refused to start a shell/command

    2023-12-05 16:18:03       41 阅读
  7. mybatis中<association> 和 <collection>

    2023-12-05 16:18:03       34 阅读
  8. 嵌入式硬件基础知识——1

    2023-12-05 16:18:03       35 阅读
  9. mySQL踩坑记录

    2023-12-05 16:18:03       43 阅读