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);
    }

  • 相关阅读:
    Linux shell中的竖线(|)——…
    setTimeout,setInterval你不知道的事
    我们为什么需要SDN?---致新人
    玩转Win10的45个快捷键
    ★对“拒绝捐肾”应去道德化评价
    BT下载原理分析
    BT下载原理分析
    Python中os和shutil模块实用方法集锦
    Python中os和shutil模块实用方法集锦
    html几种美丽的分割线
  • 原文地址:https://www.cnblogs.com/F017/p/11119550.html
Copyright © 2011-2022 走看看