SpringMVC学习二(日期参数/数据保存/重定向)
- 接受的参数为日期类型
- controller进行数据保存
- Controller如何进行重定向跳转
1.对于前端页面传来日期类型的数据时如何进行处理,有两种方法
1.1在对应的Controller中插入代码,对于其中的SimpleDateFormat("yyyy-MM-dd")部分可以更改,例如加上时分秒HH:mm:ss
@InitBinder
public void initBinder(ServletRequestDataBinder binder){
//只要网页中传来的数据格式为yyyy-MM-dd 就会转化为Date类型
binder.registerCustomEditor(Date.class, new CustomDateEditor(new SimpleDateFormat("yyyy-MM-dd"),true));
}
当有了上面的代码时,在执行下面的代码之前会先执行上面的代码,从而进行格式处理
@RequestMapping("toDate.do")
public String toDate(Date date) {
System.out.println(date);
return "index";
}
1.2在实体类的属性中加入注解
@DateTimeFormat(pattern="yyyy-MM-dd")shu//不是输出的结果格式,是接受的参数格式
private Date birthday;
通过这两种方式可处理
2.Controller进行数据保存
数据保存到request作用域的方式.
- 使用ModelAndView,那么该方法的返回类型必须是ModelAndView
- 使用Model, 方法的返回值还是字符串类型。
- 使用Map.方法的返回值还是字符串类型。
- 原始的HttpServletRequest对象保存
数据保存到session作用域的方式.
- 使用原始的HttpSession保存。
- 使用注解@SessionAttributes(name={key1,key2})
前提:我们在index.jsp中先写好以下代码进行接收,进行对比
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
这里是Index<br>
输出结果为:===requestScope==${requestScope.name}<br>
===========sessionScope==${sessionScope.name}<br>
===========applicationScope==${applicationScope.name }
</body>
</html>
2.1使用ModelAndView,那么该方法的返回类型必须是ModelAndView
1 @Controller
2 @RequestMapping("/users/")
3 @SessionAttributes(names= {"name","address"})
4 public class UsersController {
5
6 @RequestMapping("index.do")
7 public ModelAndView index() {
8 //1.保存到ModelAndView中,返回类型也是ModelAndView
9 ModelAndView mv=new ModelAndView("index");
10 mv.addObject("name", "我在ModelAndView中");
11 return mv;
12 }
13 }
结果为:
2.2使用Model, 方法的返回值还是字符串类型。
@RequestMapping("index2.do")
public String index(Model model) {
//2.保存到Model,返回值还是字符串类型
model.addAttribute("name","我在Model中");
return "index";
}
结果为:
2.3使用Map.方法的返回值还是字符串类型
@RequestMapping("index3.do")
public String index3(Map<String, Object> map) {
//3.保存到Map
map.put("name","我在Map中");
return "index";
}
结果为:
2.4 使用原始的HttpSession保存,这是数据保存到session作用域的两种方式之一(其一)
@RequestMapping("index4.do")
public String index4(HttpSession session) {
//3.保存到session
session.setAttribute("name","我在session中");
return "index";
}
结果为:
2.5对于想要存在application中的方法
@RequestMapping("index5.do")
public String index5(Model model,HttpSession session) {
//5.存放结果到application中
model.addAttribute("name","model_session");
session.getServletContext().setAttribute("name", "application");
return "index";
}
结果为:
至此我们发现,所有的sessionScope都可以获取值,是因为每一个都加上了注解:@SessionAttributes(names= {"name","address"}),这是数据保存到session作用域的两种方式之一(其二)
@SessionAttributes(names= {"name","address"})
3.Controller如何进行重定向跳转
因为默认为请求转发的方式,所以若需要重定向,则需要加入一点小小的bang助
@RequestMapping("img.do")
public String img(HttpSession session) {
//重定向
session.setAttribute("name","我是session中");
return "redirect:red.do";//此处redirect提供重定向的作用
} @RequestMapping("red.do")
public String red(Model model) {
model.addAttribute("name","我在Model中");
return "img";
}
img.jsp页面代码为:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
${requestScope.name}
<img src="/SpringMVC09_03/images/b4.jpg">
</body>
</html>
页面跳转成功,显示如下
SpringMVC学习二(日期参数/数据保存/重定向)的更多相关文章
- springmvc学习笔记(18)-json数据交互
springmvc学习笔记(18)-json数据交互 标签: springmvc springmvc学习笔记18-json数据交互 springmvc进行json交互 环境准备 加入json转换的依赖 ...
- 2018百度之星开发者大赛-paddlepaddle学习(二)将数据保存为recordio文件并读取
paddlepaddle将数据保存为recordio文件并读取 因为有时候一次性将数据加载到内存中有可能太大,所以我们可以选择将数据转换成标准格式recordio文件并读取供我们的网络利用,接下来记录 ...
- springMVC中接收请求参数&&数据转发
### 1. 接收请求参数 #### 1.1. [不推荐] 通过HttpServletRequest获取请求参数 假设存在: <form action="handle_login.do ...
- 【学习总结】iOS 数据保存几种方式总结
在iOS开发过程中,不管是做什么应用,都会碰到数据保存的问题.将数据保存到本地,能够让程序的运行更加流畅,不会出现让人厌恶的菊花形状,使得用户体验更好.下面介绍一下数据保存的方式: NSKeyedAr ...
- SpringMVC学习记录七——sjon数据交互和拦截器
21 json数据交互 21.1 为什么要进行json数据交互 json数据格式在接口调用中.html页面中较常用,json格式比较简单,解析还比较方便. 比如:webservi ...
- SpringMVC学习(二)
Ajax 简介 AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML). AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分 ...
- SpringMVC学习(四)———— 数据回显与自定义异常处理器
一.数据回显技术 Springmvc默认支持对pojo类型的数据回显,默认不支持简单类型的数据回显 1.1.什么是数据回显? 在信息校验时,如果发生校验错误,那么把校验的数据信息,依然停留在当前页面, ...
- springMVC学习二 原始springMVC环境搭建
第一步:导入jar包 第二步:配置DispatcherServlet DispatcherServlet本质是一个Servlet,在spring-webmvc包中,在servlet2.5之前 spr ...
- (转)SpringMVC学习(二)——SpringMVC架构及组件
http://blog.csdn.net/yerenyuan_pku/article/details/72231385 相信大家通过前文的学习,已经对SpringMVC这个框架多少有些理解了.还记得上 ...
- SpringMVC学习(二)——SpringMVC架构及组件(及其运行原理)-转载
相信大家通过前文的学习,已经对SpringMVC这个框架多少有些理解了.还记得上一篇文章中SpringMVC的处理流程吗? 这个图大致描述了SpringMVC的整个处理流程,这个流程图还是相对来说比 ...
随机推荐
- Linux基础操作一
开启Linux操作系统,要求以root用户登录GNOME图形界面,语言支持选择为汉语 开启虚拟机→Username:root→Password:"(注册时所创建的密码,比如"123 ...
- Book-Riscv-XV6-Chap1
操作系统接口 – 阅读 xv6-riscv-book Xv6的时钟周期:定时器芯片两次中断之间的时间 xv6作为一个简单的操作系统,利用一个"内核kernel"向其他运行中的程序提 ...
- arch 安装xfce
参照 https://www.cnblogs.com/3V4NZ/p/15330275.html 1.安装linux显示服务器 pacman -S xorg Xorg是一个开源的X Window系统的 ...
- python爬虫爬取科技报告数据,共计40余万条(来自国家科技报告服务系统)
按学科分类[中图分类] 共计三十余万条科技报告数据 爬取的网址:https://www.nstrs.cn/kjbg/navigation !!! 如果要完整地跑起来代码,需要先看一下我的这篇博客,完成 ...
- Python列表list 分片实例
1 a = list(range(10)) 2 print(a[::]) #复制一个列表 3 print(a[::2]) #每隔2个取一次 4 print(a[::3]) #每隔3个取一次 5 6 p ...
- #拓扑排序#洛谷 5157 [USACO18DEC]The Cow Gathering P
题目 给出一棵树和一些限制关系 \((a_i,b_i)\), 一种合法的删点序列当且仅当删除一个点之后树的大小不超过 1 或不存在孤立点, 并且 \(a_i\) 要比 \(b_i\) 先删除,问 \( ...
- 【开源三方库】crypto-js加密算法库的使用方法
OpenAtom OpenHarmony(简称"OpenHarmony")三方库,是经过验证可在OpenHarmony系统上可重复使用的软件组件,可帮助开发者快速开发OpenHa ...
- C++ 异常和错误处理机制:如何使您的程序更加稳定和可靠
在C++编程中,异常处理和错误处理机制是非常重要的.它们可以帮助程序员有效地处理运行时错误和异常情况.本文将介绍C++中的异常处理和错误处理机制. 什么是异常处理? 异常处理是指在程序执行过程中发生异 ...
- MyBatis 应用的组成
王有志,一个分享硬核Java技术的互金摸鱼侠 加入Java人的提桶跑路群:共同富裕的Java人 大家好,我是王有志.在上一篇文章的最后,我们写了一个简单的例子,今天我们就通过这个例子来看一看一个标准的 ...
- os.path.splitext
os.path.splitext是Python标准库中的一个函数,它可以将一个文件路径拆分成两部分:文件名和文件扩展名.例如: 点击查看代码 import os file_path='avercrop ...