springmvc 自定义全局日期转换及遇到的坑

在搞 日期转换的时候, 希望 可以 全局的,灵活的转换日期。 可是 不是出错, 就是 不方便,麻烦。

1, 第一种方式, 参考地址: https://my.oschina.net/kings0/blog/725415 这种方式是 spring3 的,不够灵活,而且性能不嘉,有缺点 2, 第二种方式: 参考地址: http://www.cnblogs.com/ssslinppp/p/4600043.html 即在 对应的 参数 bean 的 属性上面, 加上 注解, 想要 什么格式都可以 。 可是感觉 改动 也 挺麻烦的 输入图片说明

3, 第三种就是 spirng4 的 mvc 出来的, 全局的,而且 可以 随便使用的, 很灵活,可以自定义很多 转格式的, 调用也 很方便 参考地址:https://my.oschina.net/elim1/blog/811653 以及参考地址: http://blog.csdn.net/u012373815/article/details/50252073

可是 我在 使用 第三种方式的时候,老是出来问题。。。、

org.springframework.validation.BindException: org.springframework.validation.BeanPropertyBindingResult: 4 errors
Field error in object 'hrEffPplanCyclePo' on field 'objReportEtime': rejected value [2017-01-23]; codes [typeMismatch.hrEffPplanCyclePo.objReportEtime,typeMismatch.objReportEtime,typeMismatch.java.util.Date,typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [hrEffPplanCyclePo.objReportEtime,objReportEtime]; arguments []; default message [objReportEtime]]; default message [Failed to convert property value of type 'java.lang.String' to required type 'java.util.Date' for property 'objReportEtime'; nested exception is org.springframework.core.convert.ConversionFailedException: Failed to convert from type java.lang.String to type @com.skg.base.db.annotion.IField java.util.Date for value '2017-01-23'; nested exception is java.lang.IllegalArgumentException]
Field error in object 'hrEffPplanCyclePo' on field 'objReportStime': rejected value [2017-01-05]; codes [typeMismatch.hrEffPplanCyclePo.objReportStime,typeMismatch.objReportStime,typeMismatch.java.util.Date,typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [hrEffPplanCyclePo.objReportStime,objReportStime]; arguments []; default message [objReportStime]]; default message [Failed to convert property value of type 'java.lang.String' to required type 'java.util.Date' for property 'objReportStime'; nested exception is org.springframework.core.convert.ConversionFailedException: Failed to convert from type java.lang.String to type @com.skg.base.db.annotion.IField java.util.Date for value '2017-01-05'; nested exception is java.lang.IllegalArgumentException]
Field error in object 'hrEffPplanCyclePo' on field 'paEtime': rejected value [2017-01-31]; codes [typeMismatch.hrEffPplanCyclePo.paEtime,typeMismatch.paEtime,typeMismatch.java.util.Date,typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [hrEffPplanCyclePo.paEtime,paEtime]; arguments []; default message [paEtime]]; default message [Failed to convert property value of type 'java.lang.String' to required type 'java.util.Date' for property 'paEtime'; nested exception is org.springframework.core.convert.ConversionFailedException: Failed to convert from type java.lang.String to type @com.skg.base.db.annotion.IField java.util.Date for value '2017-01-31'; nested exception is java.lang.IllegalArgumentException]
Field error in object 'hrEffPplanCyclePo' on field 'paStime': rejected value [2017-01-23]; codes [typeMismatch.hrEffPplanCyclePo.paStime,typeMismatch.paStime,typeMismatch.java.util.Date,typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [hrEffPplanCyclePo.paStime,paStime]; arguments []; default message [paStime]]; default message [Failed to convert property value of type 'java.lang.String' to required type 'java.util.Date' for property 'paStime'; nested exception is org.springframework.core.convert.ConversionFailedException: Failed to convert from type java.lang.String to type @com.skg.base.db.annotion.IField java.util.Date for value '2017-01-23'; nested exception is java.lang.IllegalArgumentException]
	at org.springframework.web.method.annotation.ModelAttributeMethodProcessor.resolveArgument(ModelAttributeMethodProcessor.java:112)

出现转型 异常, 搞得我还以为是 方法搞错了,因为 自定义的 转型方法并没有调用的。。。 这就郁闷了, 可是我并没有放弃 继续 百度 看别人的资料, 看了很多, 比较菜鸟就是这样了。 后来我发现 是 因为 注入的时候 ,位置的问题 :

<!-- 注解驱动 -->
    <mvc:annotation-driven conversion-service="conversionService">

    </mvc:annotation-driven>


<!--启动MVC注解扫描功能,如果需要使用自定义的类型转换器则需要配置conversion-service,
	必须 在  mvc:annotation-driven 的前面 进行 注入,否则报错,起不到作用 
	 -->
	<mvc:annotation-driven conversion-service="conversionService" /> 
	<!-- 开启扫描 -->
	<mvc:annotation-driven />

之前我使用 将 <mvc:annotation-driven conversion-service="conversionService" /> 放在了 <mvc:annotation-driven /> 后面的 , 我把它放在了 前面之后就 起效果了,就是这坑, 至于原因,需要看看spring 源码。。。因此有时候 这样的 引用 先后位置 特别重要, 能够坑死人。。。

转载于:https://my.oschina.net/ouminzy/blog/871721

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值