Spring MVC 页面跳转时传递参数

页面仍然使用 JSP,在跳转时如果想传递参数则需要用到类 RedirectAttributes。
首先看看如何打开一个普通页面:
// 登录页面(每个页面都要独立的 Action 来支持其呈现)
@RequestMapping(value = "/Index", method = RequestMethod.GET)
public String Index(Model model)
{
model.addAttribute("name", "Tom");
return "UserLogin/Index";
}
很简单,直接为 Model 对象添加属性对即可,然后在 JSP 页面里,通过 ${name} 就可以得到它的值 Tom。
那么,在页面发生了跳转的情况下该如何传递属性对参数呢?这时 RedirectAttributes 就要隆重上场了。
先上一段代码:
// 登录动作
@RequestMapping(value = "/Login", method = RequestMethod.POST)
public String Login(UserLoginDTO userLoginDTO, RedirectAttributes attr)
{
System.out.println("--Login");
System.out.println("accountId = " + userLoginDTO.getAccountId());
System.out.println("pwd = " + userLoginDTO.getPwd());
if (userLoginDTO.getAccountId() == "")
{
attr.addFlashAttribute("msg", "帐号不能为空");
return "redirect:/UserLogin/Index";
}
if (userLoginDTO.getPwd() == "")
{
attr.addFlashAttribute("msg", "密码不能为空");
return "redirect:/UserLogin/Index";
}
attr.addFlashAttribute("msg", "登录一切正常");
System.out.println(attr);
return "redirect:/UserLogin/LoginSuccess";
}
Login 方法的第二个参数已不再是 Model 了,而是 RedirectAttributes,在方法体中,随着代码的各种判断,需要去往的页面也不相同,随之需要传递的消息也可以自由变化,比如:
attr.addFlashAttribute("msg", "帐号不能为空");
return "redirect:/UserLogin/Index";
在用法上与 Model 很相似,都是属性对,上述代码将跳转至 Index.jsp 页面。
众所周知,在 Spring MVC 里页面呈现之前都需要经由对应的方法来引导,接下来为了验证这里的属性对是否真的已传递出去,可以通过以下代码来验证:
// 登录页面(每个页面都要独立的 Action 来支持其呈现)
@RequestMapping(value = "/Index", method = RequestMethod.GET)
public String Index(Model model)
{
System.out.println("--Index");
System.out.println(model);
return "UserLogin/Index";
}
打印出来的结果是:
--Index
{msg=帐号不能为空}
可以看到,attr.addFlashAttribute() 已将参数传递出去。在 JSP 页面里用法不变,即 ${msg} 就可以得到它的值。
Spring MVC 页面跳转时传递参数的更多相关文章
- VUE:页面跳转时传递参数,及参数获取
https://www.cnblogs.com/zhongchao666/p/9679807.html https://blog.csdn.net/mf_717714/article/details/ ...
- [Xcode 实际操作]九、实用进阶-(24)使用Segue(页面的跳转连接)进行页面跳转并传递参数
目录:[Swift]Xcode实际操作 本文将演示使用Segue(页面的跳转连接)进行页面跳转并传递参数. 参照结合:[Xcode10 实际操作]九.实用进阶-(23)多个Storyboard故事板中 ...
- 页面跳转时中间参数保存(memcache/cookie)
2014年1月19日 17:30:27 我这篇文章就说了一句话:用cookie保存页面间跳转时的参数 情景: 客服在后台操作的时候,经常从列表页进入到编辑页,编辑完信息后,还要自动返回之前的列表页 问 ...
- 微信小程序:页面跳转时传递数据到另一个页面
一.功能描述 页面跳转时,同时把当前页面的数据传递给跳转的目标页面,并在跳转后的目标页面进行展示 二.功能实现 1. 代码实现 test1页面 // pages/test1/test1.js Page ...
- spring mvc从前台往后台传递参数的三种方式
jsp页面: 第一种:使用控制器方法形参的方式(常用) 第二种:使用模型传参的方式(如果前台往后台传递的参数非常多,如果还使用形参的方式传递,非常复杂.我们可以使用模型传参的方式,把多 个请求的参数 ...
- Android实现页面跳转及传递参数的方法
简单的示例 实现的效果是这样的: 第一个页面有一个按钮,一个文本框,点击按钮,将文本框的内容传递到第二个页面,并显示在第二个页面中. 首先是在给按钮添加点击事件 setOnClickListener( ...
- Android 实现页面跳转并传递参数教程
首先我们来看一下实现的功能: 第二,我们看一下实现这个功能,总共会接触到哪些文件和代码. 1.实现本功能总共涉及如下6个文件 2.实现本功能,总共涉及如下6个文件中的如下代码: (1) 效果: ...
- 使用Spring mvc接收整个url地址及参数时注意事项
使用Spring mvc接收整个url地址及参数时注意事项:url= http://baidu?oid=9525c1f2b2cd45019b30a37bead6ebbb&td=2015-08- ...
- 页面跳转时,url 传大数据的参数不全的问题+序列化对象
1.页面跳转时,url 传大数据的参数不全的问题 //传参: url: '/pages/testOfPhysical/shareEvaluation?detailInfo=' +encodeURICo ...
随机推荐
- MPLS VPN随堂笔记3
跨域 ASBR之间运行MPBGP 1.配置AS内部IGP保证环回口互相可达,同时建立LDP邻居 (优先启用 mpls label rang 16 100)方便查看实验现象 2.配置PE1-PE2 PE ...
- 201521123045 《Java程序设计》第8周学习总结
第08周-集合与泛型 1. 本周学习总结 2. 书面作业 1.List中指定元素的删除(题目4-1)1.1 实验总结 答: Scanner实现字符串的输入有两种方法,一种是next(),一种nextL ...
- 201521123072《Java程序设计》第6周学习总结
201521123072<Java程序设计>第6周学习总结 标签(空格分隔): java 1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画 ...
- 201521123085 《JAVA程序设计》第6周学习总结
1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图,对面向对象思想进行一个总结. 2. 书面作业 1.clone方法 1.1 Object对 ...
- 201521123044 《Java程序设计》第5周学习总结
1. 本章学习总结 2. 书面作业 1. 代码阅读:Child压缩包内源代码 1.1 com.parent包中Child.java文件能否编译通过?哪句会出现错误?试改正该错误.并分析输出结果. 答: ...
- 201521123027 <java程序设计>第11周学习总结
1.本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 2.书面作业 1.互斥访问与同步访问 完成题集4-4(互斥访问)与4-5(同步访问) 1.1 除了使用synchro ...
- PTA分享码-Java
主要用于Java语法练习,非竞赛类题目. 1. Java入门 959dbf0b7729daa61d379ec95fb8ddb0 2. Java基本语法 23bd8870e ...
- [Android FrameWork 6.0源码学习] View的重绘过程之Draw
View绘制的三部曲,测量,布局,绘画现在我们分析绘画部分测量和布局 在前两篇文章中已经分析过了.不了解的可以去我的博客里找一下 下面进入正题,开始分析调用以及函数原理 private void pe ...
- SQL知识点大纲图
这是我整理出来的SQL大纲图.
- u盘分区装机版
第一步:制作启动U盘前的软硬件准备 .准备一个最好大于2G的U盘,并先备份好里面的数据,防止接下来需要清空U盘的数据而出现丢失重要文件: 2.下载U盘启动盘制作工具6.1软件,直接放在桌面,方便接下来 ...