SpringMVC 跨重定向请求传递数据的方法实现
时间:2021-01-06 11:22:26|栏目:JAVA代码|点击: 次
执行完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接受JSON参数详解及常见错误总结
栏 目:JAVA代码
本文标题:SpringMVC 跨重定向请求传递数据的方法实现
本文地址:http://www.codeinn.net/misctech/41317.html


阅读排行
- 1Java Swing组件BoxLayout布局用法示例
- 2java中-jar 与nohup的对比
- 3Java邮件发送程序(可以同时发给多个地址、可以带附件)
- 4Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type异常
- 5Java中自定义异常详解及实例代码
- 6深入理解Java中的克隆
- 7java读取excel文件的两种方法
- 8解析SpringSecurity+JWT认证流程实现
- 9spring boot里增加表单验证hibernate-validator并在freemarker模板里显示错误信息(推荐)
- 10深入解析java虚拟机




