1. <!-- 注册转化器 -->
  2. <mvc:annotation-driven conversion-service="conversionService" />
  3. <!-- 自定义转换器 -->
  4. <bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
  5. <property name="converters">
  6. <list>
  7. <bean class="com.vrv.linkdood.app.workreport.conversion.DateConverter"></bean>
  8. </list>
  9. </property>
  10. </bean>
  1. import java.text.DateFormat;
  2. import java.text.SimpleDateFormat;
  3. import java.util.ArrayList;
  4. import java.util.Date;
  5. import java.util.List;
  6.  
  7. import org.springframework.core.convert.converter.Converter;
  8.  
  9. /**
  10. * @Description 自定义时间转换器
  11. * @author LJ
  12. * @Date 2016年6月7日 下午3:13:35
  13. * @Version v1.0
  14. */
  15. public class DateConverter implements Converter<String, Date> {
  16. private static final List<String> formarts = new ArrayList<String>(4);
  17.  
  18. static {
  19. formarts.add("yyyy-MM");
  20. formarts.add("yyyy-MM-dd");
  21. formarts.add("yyyy-MM-dd hh:mm");
  22. formarts.add("yyyy-MM-dd hh:mm:ss");
  23. }
  24.  
  25. public Date convert(String source) {
  26. String value = source.trim();
  27. if ("".equals(value)) {
  28. return null;
  29. }
  30. if (source.matches("^\\d{4}-\\d{1,2}$")) {
  31. return parseDate(source, formarts.get(0));
  32. } else if (source.matches("^\\d{4}-\\d{1,2}-\\d{1,2}$")) {
  33. return parseDate(source, formarts.get(1));
  34. } else if (source.matches("^\\d{4}-\\d{1,2}-\\d{1,2} {1}\\d{1,2}:\\d{1,2}$")) {
  35. return parseDate(source, formarts.get(2));
  36. } else if (source.matches("^\\d{4}-\\d{1,2}-\\d{1,2} {1}\\d{1,2}:\\d{1,2}:\\d{1,2}$")) {
  37. return parseDate(source, formarts.get(3));
  38. } else {
  39. throw new IllegalArgumentException("Invalid boolean value '" + source + "'");
  40. }
  41. }
  42.  
  43. /**
  44. * 功能描述:格式化日期
  45. *
  46. * @param dateStr
  47. * String 字符型日期
  48. * @param format
  49. * String 格式
  50. * @return Date 日期
  51. */
  52. public Date parseDate(String dateStr, String format) {
  53. Date date = null;
  54. try {
  55. DateFormat dateFormat = new SimpleDateFormat(format);
  56. date = (Date) dateFormat.parse(dateStr);
  57. } catch (Exception e) {
  58. }
  59. return date;
  60. }
  61.  
  62. }

spring mvc 自定义转换器的更多相关文章

  1. Spring MVC 自定义类型转换器

    新建一个自定义转换器 import org.springframework.core.convert.converter.Converter; import org.springframework.s ...

  2. spring mvc 自定义编辑器

    起始知识: Java标准的PropertyEditor的核心功能是将一个字符串转换为一个Java对象,以便根据界面的输入或配置文件中的配置字符串构造出一个JVM内部的java对象. 如何注册自定义的属 ...

  3. Spring MVC自定义消息转换器(可解决Long类型数据传入前端精度丢失的问题)

    1.前言 对于Long 类型的数据,如果我们在Controller层通过@ResponseBody将返回数据自动转换成json时,不做任何处理,而直接传给前端的话,在Long长度大于17位时会出现精度 ...

  4. Spring MVC自定义统一异常处理类,并且在控制台中输出错误日志

    在使用SimpleMappingExceptionResolver实现统一异常处理后(参考Spring MVC的异常统一处理方法), 发现出现异常时,log4j无法在控制台输出错误日志.因此需要自定义 ...

  5. spring mvc 自定义Handlermapping

    上次大概写了个可以解决velocity 多视图的东西. 但是实际运用过程中又到处找了些资料看了下.这里 小计下: DispatcherServlet解析过程: ..1..HandlerMapping. ...

  6. spring mvc --自定义converse

    在MVC中我们可以很轻松的根据项目需求进行必要的信息转换,如设置默认的日期格式,自定义String类型的格式等等... 配置中我们需要自定义converseService: <bean id=& ...

  7. Spring MVC类型转换器

    类型转换器引入 为什么页面上输入"12",可以赋值给Handler方法对应的参数?这是因为框架内部帮我们做了类型转换的工作.将String转换成int 但默认类型转换器并不是可以将 ...

  8. spring mvc自定义注解--登录时密码加密注解

    1,定义注解名称接口 /** * 使用该注解不用再MD5转换了 * * @author adonis * */ @Target(ElementType.PARAMETER) @Retention(Re ...

  9. Spring MVC自定义403,404,500状态码返回页面

    代码 HTTP状态码干货:http://tool.oschina.net/commons?type=5 import org.springframework.boot.web.servlet.erro ...

随机推荐

  1. [开发]Win7环境下Eclipse连接Hadoop2.2.0

    准备: 确保hadoop2.2.0集群正常运行 1.eclipse中建立mven工程,并编辑pom文件如下 <dependencies> <dependency> <gr ...

  2. Red hat Linux 安装Node.js 源码安装

    1. 下载源码包 http://nodejs.org/dist/v0.10.29/node-v0.10.29.tar.gz 2.准备安装环境,>python2.6, gcc, g++ pytho ...

  3. 大一暑假为期五周的ACM实验室培训结束了(2013.8.24)

    没想到,我的大学里第一个暑假,9周的时间只有最初的两周在家待着,接下来的7周将会在学校度过. 说真的,这是我上学以来,第一次真正好好利用的假期.在这五周里,周一.三.五下午学长都会给我们讲点知识,之后 ...

  4. iOS第三方解决键盘遮挡-IQKeyboardManager

    百度云:http://pan.baidu.com/s/1yg5ae githun:https://github.com/hackiftekhar/IQKeyboardManager AppDelega ...

  5. POJ 2070

    #include<iostream> #include<stdio.h> using namespace std; int main() { //freopen("a ...

  6. mvc5 @RenderSection("scripts", required: false) 什么意思

    在模板中 相当于占位符 使用方法如下 @section scripts{ //coding }

  7. CXF+Spring 搭建的WebService

    1.创建类 2.接口编写 package com.fan; import javax.jws.WebService; @WebService public interface IHelloWorld ...

  8. js对象小结

    前奏 对象是js的基本数据类型,准确来说除了字符串,数字,boolean值,null与undifine之外,js中的值都是对象.js中的对象是一种复合值,他将很多值(原始值或其他对象)聚合在一起,可以 ...

  9. Java IO(二)

    字节流 字符流: FileReader FileWriter BufferedReader BufferedWriter 字节流: FileInputStream FileOutputStream B ...

  10. eclipse导入的工程前面有感叹号是什么意思

    1.尤其是从其他地方拷贝来并且直接加载的工程,刚打开往往会看到工程的图标上有个红色的感叹号,这是因为build path 出错了,里面有缺失或者无法找到的包. 2. 原因:显示红色感叹号是因为jar包 ...