SpringMVC的Date与String互转

    摘要:        项目里经常需要用到日期和String之间的转换,比如后台的Date对象以Json形式返回给前端页面的时候,希望转换为yyyy-MM-dd HH:mm:ss格式的字符串,而前端页面在提交表单时日期字段希望能自动填充到后台controller方法的Date对象里。

           

   项目里经常需要用到日期和String之间的转换,比如后台的Date对象以Json形式返回给前端页面的时候,希望转换为yyyy-MM-dd HH:mm:ss格式的字符串,而前端页面在提交表单时日期字段希望能自动填充到后台controller方法的Date对象里。

      后台date转换String,在你date类型属性get方法上添加@JsonFormat注解(一般不这么做,一般都是时间戳(日期毫秒值)转到jsp,前台利用标签转换成‘yyyy-MM-dd’格式),如下:

Java代码  收藏代码
  1. @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="Asia/Shanghai")  
  2. public Date getCreateTime() {  
  3.     return createTime;  
  4. }  

注意:这个注解是属于jackson的,springmvc 完美集成了jackson,不过使用这个注解需要导入  jackson依赖的三个包,参考:http://www.cnblogs.com/cainiao-Shun666/p/6872470.html

前端表单里的日期String转成后台的Date(方法不只这一种,见下一篇转载的博客):

Java代码  收藏代码
  1. /**文章发布日期结束*/  
  2. @DateTimeFormat(pattern="yyyy-MM-dd")  

 至此,不要以为完事大吉了,你还需要完成以下两个步骤才可以。

第一需要加入joda的jar包。因为在@DateTimeFormat注解中使用到了joda包中的相关东西,所以缺少这个包也是会报异常的。如果使用的直接导入jar包的话,去下载joda-Jar导入即可,如果使用的是Maven管理项目的jar,那么在配置文件文件中加入依赖:

<dependency><groupId>joda-time</groupId><artifactId>joda-time</artifactId><version>2.3</version></dependency>

第二需要在SpringMVC配置xml文件中(一般是dispatchServlet.xml文件)中加入配置:<mvc:annotation-driven />。这一句配置是一种简写,其实是给Spring容器中注入了两个Bena,分别是:DefaultAnnotationHandlerMapping和AnnotationMethodHandlerAdapter。@DateTimeFormat注解的内部同样需要使用到前面注入的两个bean去处理,所以缺少这个配置,Spring容器中没有对应的bean去处理注解同样也会报错。至此,所有的步骤都完成了,可以跑了。

 

 

 

 

 

posted @ 2017-05-19 17:13  迷走神经  阅读(8524)  评论(0编辑  收藏  举报