zoukankan      html  css  js  c++  java
  • 如何让重定向也带数据

    有两种方式可以在重定向中传输数据 :
    ①使用URL模板以路径变量和/或查询参数的形式传递参数。//只能传递简单类型的参数
    ②通过flash属性发送数据。

    方式一的示例:
    @RequestMapping(method=RequestMethod.GET)
    public String spittles(Model model){
    //map类型也可以做为模型
    model.addAttribute("pid", "wahahah");
    model.addAttribute("username", "haha");
    return "redirect:/spi/{username}";
    //冲向的路径形式是:/spi/haha?pid=wahahah
    }
    @RequestMapping("/spi/{username}")
    public void tets(@PathVariable("username")String username,String pid ){
    System.out.println(username);
    System.out.println(pid);
    }
    方式二示例:
    通过flash其实是将数据放到会话中,然后再取出。
    @RequestMapping(method=RequestMethod.GET)
    public String spittles(RedirectAttributes model){
    //map类型也可以做为模型
    model.addFlashAttribute("spittles", spittleRespository.findSpittles(Long.MAX_VALUE, 20));
    model.addAttribute("pid", "wahahah");
    model.addAttribute("username", "haha");
    return "redirect:/spittles/spi/{username}";
    }
    @RequestMapping("/spi/{username}")
    public void tets(@PathVariable("username")String username,String pid ,Model model){
    if(model.containsAttribute("spittles")){
    Map<String, Object> asMap = model.asMap();
    ArrayList<Spittle> list = (ArrayList<Spittle>) asMap.get("spittles");
    System.out.println(Arrays.toString(list.toArray()));
    }
    System.out.println(username);
    System.out.println(pid);
    }

  • 相关阅读:
    ES5 创建构造函数的私有属性
    js 触发打印操作
    创建 React 项目
    处理因使用 BigInt 等最新语法时 ts 编译报错
    TS 查找第三方声明文件
    Git 撤销工作区中的变动
    Git 查看文件修改状态
    Git 查看用户名和 Email
    查看某个 npm 包的所有发行版版本号,比如 vue
    Git 查看文件修改详情
  • 原文地址:https://www.cnblogs.com/F017/p/11119550.html
Copyright © 2011-2022 走看看