SpringMVC 跨重定向请求传递数据的方法实现
执行完post请求后,通常来讲一个最佳实践就是执行重定向。重定向将丢弃原始请求数据,原始请求中的模型数据和请求都会消亡。可以有效避免用户浏览器刷新或者后退等操作,直接间接地重复执行已经完成的post请求。
在控制方法中返回的视图名称中,在String前使用"redirect:"前缀,那么这个String就不是来查找视图的,而是浏览器进行重定向的路径,相当于重新发出请求。
重定向通常相当于从一个controller到另一个controller。
(1)使用URL模板以路径变量和查询参数的形式传递数据(一些简单的数据)
@GetMapping("/home/index") public String index(Model model){ Meinv meinv = new Meinv("gaoxing",22); model.addAttribute("lastName",meinv.getLastName()); model.addAttribute("age",meinv.getAge()); return "redirect:/home/details/{lastName}"; } @GetMapping("/home/details/{lastName}") public String details(@PathVariable String lastName, @RequestParam Integer age){ System.out.println(lastName); System.out.println(age); return "home"; }
(2)通过flash属性发送数据(对象等复杂数据)
@GetMapping("/home/index") public String index(RedirectAttributes model){ Meinv meinv = new Meinv("gaoxing",22); model.addAttribute("lastName",meinv.getLastName()); model.addFlashAttribute("meinv",meinv); return "redirect:/home/details/{lastName}"; } @GetMapping("/home/details/{lastName}") public String details(@PathVariable String lastName, Model model){ Meinv meinv = null; if(model.containsAttribute("meinv")){ meinv = (Meinv) model.asMap().get("meinv"); } System.out.println(meinv); return "home"; }
到此这篇关于SpringMVC 跨重定向请求传递数据的方法实现的文章就介绍到这了,更多相关SpringMVC 跨重定向传递数据内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Java实现AES/CBC/PKCS7Padding加解密的方法
这篇文章主要介绍了Java实现AES/CBC/PKCS7Padding加解密的方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-08-08IDEA报java: java.lang.OutOfMemoryError: Java heap space错误
这篇文章主要给大家介绍了关于IDEA报java: java.lang.OutOfMemoryError: Java heap space错误的解决办法,文中将解决的办法介绍的非常详细,需要的朋友可以参考下2024-01-01springBoot的事件机制GenericApplicationListener用法解析
这篇文章主要介绍了springBoot的事件机制GenericApplicationListener用法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值的相关资料2019-09-09
最新评论