springMVC 前后台日期格式传值解决方式之二(共二) @InitBinder的使用

关于springmvc日期问题的解决方式 除了本博客的【springMVC 前后台日期格式传值解决方式之 @DateTimeFormat的使用和配置】一文,

还有如下这种方式:

在Controller里加上这段代码:

 1     @InitBinder
 2     public void initBinder(ServletRequestDataBinder binder) {
 3         /**
 4          * 自动转换日期类型的字段格式
 5          */
 6         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
 7         binder.registerCustomEditor(Date.class, new CustomDateEditor(sdf, true));
 8
 9
10     }

注意,如果前台有多重日期格式,写成类似下面的方式是没有什么卵用的

 1     @InitBinder
 2     public void initBinder(ServletRequestDataBinder binder) {
 3         /**
 4          * 自动转换日期类型的字段格式
 5          */
 6         SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
 7         SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月");
 8         try {
 9             binder.registerCustomEditor(Date.class, new CustomDateEditor(sdf2, true));
10         }catch(Exception e) {
11             binder.registerCustomEditor(Date.class, new CustomDateEditor(sdf1, true));
12         }
13
14     }

怎么解决呢?

可参考这个问题:http://bbs.csdn.net/topics/380055180

原文内容如下

----------------------------------------------------------分界线开始-----------------------------------------------------------

配置文件为


1

2

3

4

5

<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">  

    <property name="webBindingInitializer">  

        <bean class="xx.xxx.MyBindingInitializer"/>  

    </property>  

</bean

MyBindingInitializer中,initBinder方法里的
binder.registerCustomEditor(Date.class, new XXXEditor());

在XXXEditor的setAsText方法中,使用系统所有可能用到的format格式一一尝试,捕获异常,最后正确绑定。

-------------------------------------------------------分界线结束----------------------------------------------------------------

至于其中的XXXEditor怎么写,大家可以参照例子中的CustomDateEditor,即:org.springframework.beans.propertyeditors.CustomDateEditor源码中怎么写的。

时间: 2024-10-29 13:40:45

springMVC 前后台日期格式传值解决方式之二(共二) @InitBinder的使用的相关文章

springMVC 前后台日期格式传值解决方式之一(共二) @DateTimeFormat的使用和配置

无意中发现对于时间字符串转Date类,根本不用自己去写转换类,spring mvc已经实现了该功能,还是基于注解的,轻松省事,使用 org.springframework.format.support.FormattingConversionServiceFactoryBean 之后,只要在vo里加注解就行了 使用时要引入一个类库joda-time-n.n.jar Java代码   @DateTimeFormat(pattern="yyyy-MM-dd") private Date d

springmvc处理日期格式

解决http400错误 通常有两个来源: 1 页面的下拉列表中传入了字符串,而服务器需要的是Integer类型的,所以服务器拒绝. 2, 浏览器传给服务器端的日期格式字符串,服务器端理解不了,所以需要在entity的日期类型成员变量上加注@DateTimeFormat( pattern = "yyyy-MM-dd" )   服务器->浏览器  封装json  http://jadethao.iteye.com/blog/1741162 浏览器->服务器  转换日期为Date

SpringMVC四种响应传值的方式

1.返回值为void类型 使用方法的参数requesr和response进行数据分享和页面跳转 @RequestMapping("/test1") public void test1(HttpServletRequest request, HttpServletResponse response) throws Exception{ //通过request和response控制页面和共享数据 request.setAttribute("msg","你好,太

Springmvc框架-json数据格式传递过程中-将时间戳转化成标准的日期格式[email&#160;protected]

在上一个小demo中,我们能够看出,其实返回的日期格式也是不对的,现在返回的是一个时间戳,并不是一个标准的日期格式. 解决办法: 第一种:在要转化的实体类中添加@JSONField注解 第二种:配置fastjson的消息转换器,来处理日期格式的问题 springmvc-servlet.xml 1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.spring

mysql jdbc处理0日期格式蛋疼问题-也算是BUG

最近在写一个数据库访问的中间平台时,使用MySQL JDBC处理一些日期数据,遇到点变态的问题,给大家乐一乐! 首先来看看什么样的日期数据这么蛋疼呢? DATE            0000-00-00 DATETIME   0000-00-00 00:00:00 TIMESTAMP 0000-00-00 00:00:00 TIME               25:21:22 对于前3种情况,直接用JDBC读取,肯定会报错,报错信息类似这样: Value '0000-00-00' can n

SpringMVC + Spring + MyBatis 学习笔记:提交数据遭遇日期格式报400错误解决方法

系统:WIN8.1 数据库:Oracle 11GR2 开发工具:MyEclipse 8.6 框架:Spring3.2.9.SpringMVC3.2.9.MyBatis3.2.8 使用SpringMVC开发的时候,页面如果有日期格式的数据,后台接受也是java.util.Date,则报告400错误 .下面是解决方案的演示示例: 这个是实体类,里面createDate就是java.util.Date类型 1 import java.util.Date; 2 3 public class User {

SpringMVC 返回json的日期格式的问题的解决方法

springMVC中josn的日期类型输出默认是时间戳,需要进行日期格式转换. 格式化输出json 方法1. 在实体类的getter方法上面添加@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") 就可以将json的日期格式化.需要导入的json的相关jar包 @JsonFromat存在于jackson-annotations-2.1.0.jar中. Maven项目需要添加的依赖: <!--

SpringMVC与MyBatis整合之日期格式转换

在上一篇博客<SpringMVC与MyBatis整合(一)——查询人员列表>中遗留了日期格式转换的问题,在这篇记录解决过程. 对于controller形参中pojo对象,如果属性中有日期类型,需要自定义参数绑定.         将请求日期数据串传成 日期类型,要转换的日期类型和pojo中日期属性的类型保持一致. 在上一篇的示例程序中,Person类属性如下: 而测试结果如下: 所以自定义参数绑定将日期串转成java.util.Date类型.需要向处理器适配器中注入自定义的参数绑定组件. 添加

uploadify在火狐下上传不了的解决方式,java版(Spring+SpringMVC+MyBatis)具体解决方式

?? 因为技术选型的原因,在一个产品中.我选择了uploadify,选择它的原因是它有完好的技术文档说明(http://www.uploadify.com/documentation/),唯一不足的是官方文档上的样例是用php写的. 而对与我们这些使用Java语言的小生们而言,在遇到问题后发现找到一个适合自己的样例非常不好找.特别是当遇到浏览器兼容问题的时候,找了好久终于发现依照网上的方式进行编写了,终于还是会出现莫名其妙的问题,而继续查找资料的时候,发现解说的并不具体. 以下我就把我遇到的这些