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 ...
随机推荐
- 201521123072《java程序设计》第八周总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容. 2. 书面作业 List中指定元素的删除(题目4-1) 1.1 实验总结 在删除List中的元素中要考虑元素删 ...
- 201521123057 《Java程序设计》第3周学习总结
1. 本周学习总结 2. 书面作业 1.代码阅读 public class Test1 { private int i = 1;//这行不能修改 private static int j = 2; p ...
- java课程设计--WeTalk(201521123072秦贞一)
在线群聊系统 1,团队课程设计博客链接 http://www.cnblogs.com/slickghost/p/7018105.html 个人负责模块或任务说明 负责模块:界面设计与实现 2,自己的代 ...
- scrapy爬虫框架
downloader:负责下载html页面 spider:负责爬取页面内容,我们需要自己写爬取规则 srapy提供了selector,获取的方式有xpath,css,正则,extract item容 ...
- Java数据库连接泄漏应对办法-基于Weblogic服务器
临时解决连接泄漏方案 当连接泄漏真的发生了,无可避免时,我们采取以下方案,可临时解决连接问题,以争取修改代码的时间. 步骤1:选择待分析的JNDI数据源 步骤2(可选):可配置最大数据连接数量 步骤3 ...
- 【转】SWT/JFace的对话框
一.MessageDialog ,MessageDialog的用法很简单 MessageDialog.openInfomation(shell,title,message); ...
- Maven下载、安装和配置(二)
前言 在上篇博文[项目管理和构建]--Maven简介(一)中我们了解到maven是一种全新的项目构建方式,让我们的开发更加简单,高效.Maven主要做的是两件事: 统一开发规范与工具 统一管理jar包 ...
- 入坑IT都快十年了
一起帮的开发直播已经告一段落:一是主体的功能差不多都实现了,二是用到的架构技术都展示得差不多了.以后就算继续开发,也应该都是一些“技术上”重复的工作而已.整个直播过程耗时近半年,SVN提交1062次, ...
- java中堆栈的功能作用 以及區別(搜集)
1.用new创建的对象在堆区,函数中的临时变量在栈区,Java中的字符串在字符串常量区. 2.栈:存放进本数据类型的数据和对象的引用,但对象本身不存在栈中,而是存放在堆中. 堆:存放new产生 ...
- Java 自增(++) 和 C语言中自增的区别
在Java.c语言等高级语言中自增和自减的作用基本一致,都是变量自身加一或减一.下面我只对自增进行说明,自减是类似的. 自增运算符(++),有两种书写形式,一个是在变量前: ++ num; 另一种在变 ...