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去處理注解同樣也會報錯。至此,所有的步驟都完成了,可以跑了。

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM