------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥-------------

上篇博客利用initbinder做了局部的日期类型转换,但是兼容性不要,只支持yyyy-MM-dd这种,所以我们这里进行进一步的优化

其实话说回来了,要想限定格式做最稳定的日期类型转换,就是用日期控件,让用户选,你通过js生成日期数据,这可以省好多麻烦

案例开始:

  1.定义一个自己的日期编辑类,继承PropertiesEditor

package cn.dawn.day22initbinder.editor;import org.springframework.beans.propertyeditors.PropertiesEditor;import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.regex.Pattern;/*** Created by Dawn on 2018/3/31.*/
public class MyDateEdlitor extends PropertiesEditor {@Override/*网线打过来的长的像日期的字符串str*/public void setAsText(String str) throws IllegalArgumentException {SimpleDateFormat sdf=getSimpleDate(str);Date date=null;try {date = sdf.parse(str);} catch (ParseException e) {e.printStackTrace();}setValue(date);}private SimpleDateFormat getSimpleDate(String str) {SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日");if(Pattern.matches("^\\d{4}-\\d{1,2}-\\d{2}$",str)){sdf=new SimpleDateFormat("yyyy-MM-dd");}if(Pattern.matches("^\\d{4}/\\d{1,2}/\\d{2}$",str)){sdf=new SimpleDateFormat("yyyy/MM/dd");}if(Pattern.matches("^\\d{4}\\d{1,2}\\d{2}$",str)){sdf=new SimpleDateFormat("yyyyMMdd");}return sdf;}
}

  2.自定义处理器和方法

package cn.dawn.day22initbinder;import cn.dawn.day22initbinder.editor.MyDateEdlitor;
import org.springframework.beans.propertyeditors.CustomDateEditor;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.InitBinder;
import org.springframework.web.bind.annotation.RequestMapping;import java.text.SimpleDateFormat;
import java.util.Date;/*** Created by Dawn on 2018/3/31.*/@Controller
public class MultiController {/*@InitBinder*/@InitBinder("birthday")public void initBinder(WebDataBinder binder){binder.registerCustomEditor(Date.class,new MyDateEdlitor());}/*initbinder*/@RequestMapping("/multiinitbinderFirst")public String multiinitbinderFirst(String username, Integer userage, Date birthday) throws Exception {System.out.println("2222222222");System.out.println(username);System.out.println(userage);System.out.println(birthday);return "success";}
}

  3.和上篇博客一样的大配置xml文件,不过我也放上来

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsd"><!--包扫描器--><context:component-scan base-package="cn.dawn.day22initbinder"></context:component-scan><!--视图解析器--><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/day22/"></property><property name="suffix" value=".jsp"></property></bean></beans>

  4.修改web.xml的中央调度器的上下文配置位置为上面这个xml文件

  5.jsp页面:

    5.1login.jsp

<%@ page  pageEncoding="UTF-8" contentType="text/html;charset=UTF-8" language="java" isELIgnored="false"  %>
<html>
<head><title>Title</title>
</head>
<body>
<h2>登录</h2>
<form action="${pageContext.request.contextPath}/multiinitbinderFirst" method="post">用户名:<input name="username" value="${username}">年龄:<input name="userage">生日:<input name="birthday"><input type="submit" value="登录"/>
</form>
</body>
</html>

    5.2success.jsp

<%@ page language="java" pageEncoding="utf-8" isELIgnored="false" %>
<html>
<body>
<%--<img src="data:image/1.jpg">--%>
<h2>Success!</h2>
</body>
</html>

  6.启动tomcat,访问login.jsp

SSM-SpringMVC-30:SpringMVC中InitBinder的骇客级优化相关推荐

  1. SSM Chapter 12 SpringMVC扩展和SSM框架整合

    SSM Chapter 12 SpringMVC扩展和SSM框架整合 笔记 本章目标: 掌握JSON对象的处理 理解数据转换和格式化 了解本地化 掌握Spring MVC+Spring+MyBatis ...

  2. SSM整合——Spring+SpringMVC+MyBatis整合

    文章目录 1. 数据库环境 2. 项目基本结构搭建 3. 配置MyBatis 4. 配置Spring 5. 配置SpringMVC 6. Controller和视图层编写 7. 配置Tomcat,进行 ...

  3. SSM框架:SpringMVC

    SSM框架:SpringMVC 文章目录 前言 一.回顾 1. 学习方法说明 2. 回顾MVC架构 1.什么是MVC 2.MVC的结构分析 3.Model1时代 4.Model2时代 3. 回顾Ser ...

  4. JavaWeb学习之路——SSM框架之SpringMVC(八)

    SpringMVC参数传递:把内容写到方法(HandlerMethod)参数中,SpringMVC只要有这个内容,则会注入,在这里使用注解的方式来传递参数 前提使用springmvc注解功能,相应配置 ...

  5. Java SSM篇5——SpringMVC

    Java SSM篇5--SpringMVC 1.MVC模式 MVC是软件工程中的一种软件架构模式,它是一种分离业务逻辑与显示界面的开发思想 M(model)模型:处理业务逻辑,封装实体 V(view) ...

  6. 【小家java】java8新特性之---全新的日期、时间API(JSR 310规范),附SpringMVC、Mybatis中使用JSR310的正确姿势

    [小家java]java5新特性(简述十大新特性) 重要一跃 [小家java]java6新特性(简述十大新特性) 鸡肋升级 [小家java]java7新特性(简述八大新特性) 不温不火 [小家java ...

  7. (续)SSM整合之springmvc笔记(@RequestMapping注解)(P124-130)

    目录 @RequestMapping注解 一.准备工作 1 新建spring_mvc_demo    com.atguigu 2. 导入依赖 3 .添加web模板 4 . 在web.xml里面进行进行 ...

  8. SSM框架(spring+springmvc+mybatis)+Mysql实现的社区物业管理系统(功能包含分角色,报修管理、抄表管理、车位管理、房屋管理、业主管理、投诉管理、报修统计分析等)

    博客目录 SSM框架(spring+springmvc+mybatis)+Mysql实现的社区物业管理系统 实现功能截图 系统功能 使用技术 代码 完整源码 SSM框架(spring+springmv ...

  9. 基于SSM(Spring+SpringMVC+MyBatis)框架的健身俱乐部管理系统

    目录 项目介绍 运行环境 项目技术 使用说明 运行截图 项目介绍 基于SSM(Spring+SpringMVC+MyBatis)的健身俱乐部管理系统就能有效的改善当前所面临的问题.首先,此系统拥有线上 ...

最新文章

  1. Confluence 6 创建一个空间
  2. PHP调试的时候遇到Warning: session_start() [function.session-
  3. CPU内核配置(一):通用内核配置
  4. python多个list合并成一个table_python – 将同一表模式的多个备份合并到一个主表中...
  5. P2053 SCOI2007 修车,费用流好题
  6. jax-rs jax-ws_迟来总比没有好:SSE或服务器发送的事件现在已在JAX-RS中
  7. linux无线网卡连不上网,Ubuntu 16.04无线网卡不见,无法用WiFi上网的解决方法
  8. eclipse javafx找不到或无法加载主类_JVM类加载
  9. 如何在Ubuntu-16.04 / 18.04上为 RTX 2080 Ti GPU 安装Nvidia驱动和cuda-10.0
  10. python降维可视化 自编码_如何使用自动编码器可视化降维? (Python | TensorFlow)...
  11. NoSQL、memcached介绍、安装memcached、查看memcached状态
  12. jQuery进度条加载插件
  13. 请简述GC(垃圾回收)产生的原因,并描述如何避免?
  14. Mac系统MATLAB_R2018a软件CVX下载及安装
  15. 19种电压转换的电路设计方式
  16. 漫步数学分析二十七——Stone-Weierstrass定理
  17. OSChina 周三乱弹 —— 致力于做一名优秀的女程序员鼓励师
  18. git查看状态和修改信息
  19. think php 导出excel,Thinkphp5导出excel
  20. 2021-02-14

热门文章

  1. windows10 查看 nvidia driver cuda 版本
  2. Discrete Fourier Transform离散傅里叶变换算法
  3. Python 爬虫使用pyppeteer 网页进行向下翻页操作
  4. 时间同步软件 windows_电脑便签设置事件时间提醒软件哪个好用
  5. 小蛮机器人如何联网_国际相对论第三期——机器人与物联网的碰撞
  6. mac java web_mac os安装java web开发环境配置
  7. 第一次上传代码到gitee
  8. 三相四线怎样查漏电_制冷机组三相四线与三相五线有什么区别?
  9. composer自动载入的四种方式
  10. 测试接口时使用PostMan怎么设置全局变量?