1. 程式人生 > >SpringMVC 處理Date型別@DateTimeFormat @InitBinder

SpringMVC 處理Date型別@DateTimeFormat @InitBinder

第一種:

  1. 在Date型別的屬性上加入@DateTimeFormat註解
  2. 加入joda相關的包
  3. 在SpringMVC配置檔案中加入<mvc:annotation-driver/>
    首先在相對應的屬性上加註解:
public class Person{
    //直接在date型別上加入註解,同時指定格式樣式
    @DateTimeFormat(pattern="yyyy-MM-dd")
    private Date birthday;
}

具體流程:
加入joda的jar包。因為在@DateTimeFormat註解中使用到了joda包中的相關東西,所以缺少這個包也是會報異常的。這裡使用maven依賴。

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

第二需要在SpringMVC配置XML檔案中加入配置:<mvc:annotaton-driver/>。這一句配置是一種簡寫,其實是給Spring注入了兩個bean,分別是:DefaultAnnotationHandlerMapping和AnnotationMethodHandlerAdapter註解的內部同樣需要使用到前面注入的兩個bean去處理,所以缺少這個配置,Spring容器中沒有對應的bean去處理註解同樣也會報錯。進入測試:

<form action="test" method="post">
    <input type="text" name="name"/>
    <input type="text" name="birthday"/>
    <input type="submit" name="提交"/>
</form>

用一個Controller接收:

@RequestMapping("/test")
public ModelAndView test(HttpServletRequest request,@ModelAttribute Person person){
    ModelAndView view = new
ModelAndView(); System.out.println(person.toString()); view.setViewName("/test/data"); return view; }

結束。

第二種:
使用 解決
- 第一步:

<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>  
  • 第二步
<fmt:formatDate value="轉換物件" type="轉換格式"/>  

type可以指定具體型別,如下:

1.<fmt:formatDate value="${date}" type="both"/>  
輸出格式: 2010-5-31 23:59:59  

舉例:

<td><fmt:formatDate value="${book.bookPublicationDate }" type="date"/></td>

可以和其他標籤結合使用

<input type="text"  name="bookPublicationDate" value="<fmt:formatDate value="${list.bookPublicationDate }" type="date"/>">

在value裡直接使用<fmt:formatDate/> 格式化鎖取到的值

[email protected]
所在的Controller裡面,加上使用@InitBinder宣告的方法
在DataBinder先進行日期處理

    @InitBinder
    public void initBinder(WebDataBinder binder) {
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
        dateFormat.setLenient(false);
        binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true));
    }
<fmt:formatDate value="" type=""/>中type的其他型別


2.<fmt:formatDate value="${date}" type="date"/>  
輸出格式: 2010-4-1  

3.<fmt:formatDate value="${date}" type="time"/>  
輸出格式: 23:59:59  

4.<fmt:formatDate value="${date}" type="date" dateStyle="default"/>  
輸出格式:2010-5-31  

5.<fmt:formatDate value="${date}" type="date" dateStyle="short"/>  
輸出格式:04-5-31  

6.<fmt:formatDate value="${date}" type="date" dateStyle="medium"/>  
輸出格式:2010-5-31  

7.<fmt:formatDate value="${date}" type="date" dateStyle="long"/>  
輸出格式: 20105318.<fmt:formatDate value="${date}" type="date" dateStyle="full"/>  
輸出格式:2010531日 星期一  

9.<fmt:formatDate value="${date}" type="time" timeStyle="default"/>  
輸出格式: 23:59:59  

10.<fmt:formatDate value="${date}" type="time" timeStyle="short"/>  
輸出格式:下午11:59  

11.<fmt:formatDate value="${date}" type="time" timeStyle="medium"/>  
輸出格式: 23:59:59  

12.<fmt:formatDate value="${date}" type="time" timeStyle="long"/>  
輸出格式: 下午11595913.<fmt:formatDate value="${date}" type="time" timeStyle="full"/>  
輸出格式: 下午115959秒 CDT  

14.<fmt:formatDate value="${date}" type="both" pattern="EEEE, MMMM d, yyyy 輸出格式: HH:mm:ss Z"/>  
星期四, 四月 1, 2010 13:30:00 -0600  

15.<fmt:formatDate value="${date}" type="both" pattern="d MMM yy, h:m:s a zzzz/>  
輸出格式: 31 五月 04, 11:59:59 下午 中央夏令時  

相關推薦

SpringMVC 處理Date型別@DateTimeFormat @InitBinder

第一種: 在Date型別的屬性上加入@DateTimeFormat註解 加入joda相關的包 在SpringMVC配置檔案中加入<mvc:annotation-driver/> 首先在

使用MappingJackson2HttpMessageConverter中,預設的日期返回json處理date型別

在做一個後臺管理專案的時候,使用MappingJackson2HttpMessageConverter把返回的資料全部以json格式傳送回去,但是當資料庫中的資料型別為 datetime 時,java資料是java.util.Date 時,返回的日期總是被轉成了數字。這裡記錄

關於springMVC 接收date 型別為空時候的異常解決辦法

當我們再試用springMVC搭建後臺框架的時候,如果再使用實體類接收引數的時候,難免會碰到時間型別的資料。今天在做專案的時候碰到springMVC 實體bean中存在著Date 型別的引數在前端傳遞引數中會存在Date型別的資料,當我們在做條件查詢的會後難免 會出現Dat

springmvc接收date型別引數

springmvc在表單提交接收date型別引數的時候會報錯:Cannot convert value of type [java.lang.String] to required type [java.util.Date] for property 'actionDate' 一、利用spring的DateT

SpringMVC處理Date成員物件報400 Bad Request解決辦法

在使用SpringMVC的時候,我們可能需要將一個物件從View傳遞給Controller。而當這個Object只是一些簡單的String,int或者boolean型別的成員變數時,SpringMVC能自動將View層的JSON包含的String型別轉換為Object成員變

SpringMVC對映Date型別

原文作者:aircraft 原文連結:https://www.cnblogs.com/DOMLX/p/9661012.html 先講Linux下(windows下在後面可以直接跳到後面看): 一.執行緒基本概念 前面我們講過多程序伺服器,但我們知道它開銷很大,因此我們才引入執

javaEE Springmvc,Converter型別轉換器,對請求引數自動進行型別轉換/處理(轉成Date日期型別)

src/springmvc.xml(Springmvc核心配置檔案,配置型別轉換器,為介面卡指定轉換器): <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.spring

springmvc/springboot處理前臺字串日期自動轉換成後臺date型別的三種辦法

問題還原:當前臺提交日期格式資料到後臺儲存時,已辦以字串的形式傳輸,如果後臺是data型別接受的話會報400格式錯誤。這時候就需要處理一下:  第0種(最low的方式):後臺用String型別欄位接收,如果需要使用再換成date。 第1種:使用@DateTimeFormat

springmvc使用實體類接收表單提交資料中含有String型別對應Date型別的不匹配報錯400時如何處理

springmvc使用實體類接收表單提交資料中含有String型別對應Date型別的不匹配情況,頁面提交表單報錯400,時如何處理? 參看部落格:http://blog.csdn.net/u014079773/article/details/51865178  我

springMVCDate處理方法

abi 日期 date strong span div pin rcu bin SpringMVC封裝日期 SpingMVC可以自動的封裝格式為:2017/5/16這樣的日期. SpringMVC可以自定義日期轉化格式2017-5-17 1 @InitBinder 2

Spring Boot @ResponseBody 轉換 JSON資料時Date 型別處理方法

引用處: https://blog.csdn.net/molashaonian/article/details/53025118 https://blog.csdn.net/henianyou/article/details/81945409   解析JSON的方式:

使用js處理後臺返回的Date型別的資料

從後臺返回的日期型別的資料,如果直接在前端進行顯示的話,顯示的就是一個從 1970-01-01 00:00:00到現在所經過的毫秒數,而在大多數業務中都不可能顯示這個毫秒數,大多數都是顯示一個正常的日期格式,所以在這裡,我們使用js對於從後臺返回的Date型別的資料進行處理. 方法一、 co

springboot前端傳參date型別後臺處理方式

今天真的心累,後臺要接收date型別引數,用postman測了好久也收不到,我參考了以下部落格 https://www.jianshu.com/p/ebe9087b9078 1、針對json格式:在配置檔案中加以下配置 spring.jackson.date-format=yyyy-

SpringMVC處理引數中的列舉型別通用實現

業務場景:前端提交了列舉的一個屬性value,想由spring來完成引數型別自動轉換成對應的列舉。 比方有一個列舉 @AllArgsConstructor(access = AccessLevel.PRIVATE) @Getter @JsonFormat(shape = JsonFormat.Sh

springMVC自定義型別轉換器(date型別轉換)

//日期的月份不能寫成小寫mm,因為在日期中還有分鐘mm,這兩者不能相同。 1.建立一個類實現Convert介面,實現convert方法 public date convert(String source){   if(source!=null&&!source.equals(""){

bootspring + mybaits +mysql Date 型別處理

mysql 中有date 型別的屬性,java實體類中對應的屬性是java.sql.Date 類的。 最初的bug是怎麼新增,joinDate 值都是null。 千辛萬苦學會了用String轉Date的兩種方式: 1. @DateTimeFormat(pattern = "yyyy-MM-dd")標籤

java中的日期轉換、springmvc接收前臺的Date型別引數遇到的坑

關於springmvc接收前臺傳的時間型別引數 前臺jsp用的一個日期外掛,後臺獲取一直有問題。 被這個問題搞了好久,其實很簡單。記錄下來,希望可以幫到遇到同樣問題的同學。 我專案使用的ssm框架, 在做web開發的時候,頁面傳入的都是String型別,SpringMVC可以對一些基本的型別

解決springMVC前臺傳Date型別到後臺報400錯誤問題

springMVC前臺傳Date型別到後臺報400錯誤,我們可以在實體類為Date型別的欄位上面加上: @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")

mybatis批量插入oracle日期date型別處理

oracle中儲存了date型別的欄位,需要使用Mybatis進行批量的插入 <insert id="saveBatch" parameterType="java.util.List" useG

spring boot或springmvc返回時把date型別的欄位轉成字串

我們都知道spring boot或者springmvc可以藉助自帶的jackson直接把實體物件裝成json,這次不是分享關於框架如何返回json,而是要給大家分享實體類裡的date型別的欄位在返回時怎麼統一處理成統一返回成string型別 1 使用註解類讓其繼承JsonS