• 接受的参数为日期类型
  • 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学习二(日期参数/数据保存/重定向)的更多相关文章

  1. springmvc学习笔记(18)-json数据交互

    springmvc学习笔记(18)-json数据交互 标签: springmvc springmvc学习笔记18-json数据交互 springmvc进行json交互 环境准备 加入json转换的依赖 ...

  2. 2018百度之星开发者大赛-paddlepaddle学习(二)将数据保存为recordio文件并读取

    paddlepaddle将数据保存为recordio文件并读取 因为有时候一次性将数据加载到内存中有可能太大,所以我们可以选择将数据转换成标准格式recordio文件并读取供我们的网络利用,接下来记录 ...

  3. springMVC中接收请求参数&&数据转发

    ### 1. 接收请求参数 #### 1.1. [不推荐] 通过HttpServletRequest获取请求参数 假设存在: <form action="handle_login.do ...

  4. 【学习总结】iOS 数据保存几种方式总结

    在iOS开发过程中,不管是做什么应用,都会碰到数据保存的问题.将数据保存到本地,能够让程序的运行更加流畅,不会出现让人厌恶的菊花形状,使得用户体验更好.下面介绍一下数据保存的方式: NSKeyedAr ...

  5. SpringMVC学习记录七——sjon数据交互和拦截器

    21       json数据交互 21.1      为什么要进行json数据交互 json数据格式在接口调用中.html页面中较常用,json格式比较简单,解析还比较方便. 比如:webservi ...

  6. SpringMVC学习(二)

    Ajax 简介 AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML). AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分 ...

  7. SpringMVC学习(四)———— 数据回显与自定义异常处理器

    一.数据回显技术 Springmvc默认支持对pojo类型的数据回显,默认不支持简单类型的数据回显 1.1.什么是数据回显? 在信息校验时,如果发生校验错误,那么把校验的数据信息,依然停留在当前页面, ...

  8. springMVC学习二 原始springMVC环境搭建

    第一步:导入jar包 第二步:配置DispatcherServlet DispatcherServlet本质是一个Servlet,在spring-webmvc包中,在servlet2.5之前  spr ...

  9. (转)SpringMVC学习(二)——SpringMVC架构及组件

    http://blog.csdn.net/yerenyuan_pku/article/details/72231385 相信大家通过前文的学习,已经对SpringMVC这个框架多少有些理解了.还记得上 ...

  10. SpringMVC学习(二)——SpringMVC架构及组件(及其运行原理)-转载

    相信大家通过前文的学习,已经对SpringMVC这个框架多少有些理解了.还记得上一篇文章中SpringMVC的处理流程吗?  这个图大致描述了SpringMVC的整个处理流程,这个流程图还是相对来说比 ...

随机推荐

  1. 7.3万字肝爆Java8新特性,我不信你能看完!(建议收藏)

    大家好,我是冰河~~ 说实话,肝这篇文章花了我一个月的时间,关于Java8的新特性全在这儿了,建议先收藏后阅读. Java8有哪些新特性? 简单来说,Java8新特性如下所示: Lambda表达式 函 ...

  2. 【K8S】Docker向私有仓库拉取/推送镜像报错(http: server gave HTTP response to HTTPS client)

    这里,我们搭建的Harbor仓库的地址为 http://192.168.175.101:1180. 报错信息如下所示. [root@binghe101 ~]# docker login 192.168 ...

  3. Java jdbcTemplate 获取数据表结构

    表结构如图 代码 @Autowired JdbcTemplate jdbcTemplate; @Test public void getColumnNames() throws Exception { ...

  4. verilog中的数据类型

    Verilog中的数据格式 1.基本概念 verilog中写一个数据的通用格式是 n'b000_000_···_000,表示一个n位的二进制数.基于这个通用式,可以将其分为三个部分:位数.加权数和实际 ...

  5. date_histogram,es按照时间分组统计

    日期直方图聚合(date_histogram) 与histogram相似,es中内部将日期表示为一个long值,所以有时候可以用histogram来达到相同的目的,但往往没有date_histogra ...

  6. 初学STM32 CAN通信(二)

    初学STM32 CAN通信(二) 1. STM32的CAN外设 ​ STM32的芯片中具有bxCAN控制器 (Basic Extended CAN),它支持CAN协议2.0A和2.0B标准. ​ 该C ...

  7. #线段树#洛谷 3988 [SHOI2013]发牌

    传送门 分析 fake:此题不就是链表模拟题吗,我一开始还真这么想 貌似链表什么用都没有,根据题意很清楚,要找一个支持删除和查询区间第\(k\)大的数据结构 解释一下为什么题目可以转换为查询区间第\( ...

  8. #回滚莫队#AT1219 歴史の研究

    洛谷题目 AT1219 分析 不满足区间减性质的运算,如最值,就不能用普通莫队求, 考虑回滚莫队,它的核心思想就是若区间在块内直接暴力, 否则将右端点从小到大排序,右端点按普通莫队求,那么左端点由于只 ...

  9. 华为3D建模服务(3D Modeling Kit),轻松构建高质量3D模型

    华为3D建模服务(3D Modeling Kit)是华为在图形图像领域又一技术开放,面向有3D模型.动画制作等能力诉求的应用开发者,基于AI技术,提供3D物体模型自动生成和PBR材质生成功能,实现3D ...

  10. react native 如何用vs code 进行调试

    前言 以前做react-native 写的文章,在此分享一下. 在react-native 中有两种方式调试,一种是crome 调试,一种是本地调试,接下来介绍的是本地调试. 解决方案 在vs cod ...