SpringMVC 跨重定向请求传递数据的方法实现
作者:SpringCore 发布时间:2022-10-18 06:33:08
标签: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";
}
来源:https://www.cnblogs.com/fanqisoft/p/10263091.html
0
投稿
猜你喜欢
- 一、项目需求二、项目思路1、菜单制作2、中奖号码生成 getNumber (随机数 Math.random)3、购买号码和中奖号码比对 生成
- 一、什么是锁擦除锁擦除是指虚拟机即时编译器(JIT)在运行时,对一些代码上要求同步,但是被检测到不可能存在共享数据竞争的锁进行擦除。锁擦除的
- 实现代码一、import java.io.File;import java.io.*;public class DelNullDir {pu
- 一、OutputStreamWriter流 API说明:OutputStreamWriter是从字符流到
- 本文实例讲述了C#编程实现动态改变配置文件信息的方法。分享给大家供大家参考,具体如下:配置文件实际上就是一个XML文件,所以我们可以使用Xm
- 在一些电子商务网站上经常能够看到一些滚动的广告条,许多软件在首次使用时也有类似的广告条,如图:其实在github上有实现这种效果的控件,不过
- 问题描述:N个人围成一圈,从第一个人开始报数,报到m的人出圈,剩下的人继续从1开始报数,报到m的人出圈;如此往复,直到所有人出圈很多实现是使
- 先画个图,了解下Android下数据库操作的简单流程:1.首先,写一个自己的数据库操作帮助类,这个类继承自Android自带的SQLiteO
- 1 原码、反码、补码原码:将十进制转化为二进制即原码;反码:正数的反码与原码相同,负数的反码(除却最高位的符号位不变)与原码相反
- 一、递归概念递归本质:程序调用自身的编程技巧叫做递归。程序调用自身的编程技巧称为递归( recursion)。递归做为一种算法在程序设计语言
- 说明:在阅读本篇文章之前建议大家先详细学习一下spring的相关知识,有助于更深刻的理解spirngboot的配置原理。一、什么是sprin
- 著名的Java单元测试框架Junit 4已经出来很长时间了,当时我发现JUnit 5已经处于测试版,就准备写文章来介绍JUnit 5.不过因
- 废话不多说了,直奔主题了。需要两个jar包:commons-fileupload.jarCommons IO的jar包(本文使用common
- SlidingDrawer效果想必大家也见到过,它就是1.5模拟器上进入应用程序列表的效果。下面是截图一、简介 SlidingDr
- 注意事项阿里云的dataworks提供了OpenApi, 需要是企业版或旗舰版才能够调用,也就是付费项目。这里测试主要是调用拉取datawo
- 在类中自定义的“函数”称为“方法”,由于C#是完全面向对象的
- 本文汇总了几个WinForm中常见的实用技巧,对于C#程序开发有着很好的参考借鉴价值。具体分析如下:一、屏蔽窗体右上角关闭按钮1.重写OnC
- this可能是几乎所有有一点面向对象思想的语言都会引用到的变量,java自然不例外。只是,this有多少种用法,我也不知道了,让我们来see
- 近来总是接触到 IoC(Inversion of Control,控制反转)、DI(Dependency Injection,依赖注入)等编
- Maven 多profile及指定编译要点项目A依赖项目B,项目A、B都有对应的多个profile,通过mvn –P参数指定profile,