日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網營銷解決方案
SpringMVC日期類型接收空值異常問題解決方法

最近遇到SpringMVC寫個controller類,傳一個空串的字符類型過來,正常情況是會自動轉成date類型的,因為數(shù)據(jù)表對應類類型就是date的

創(chuàng)新互聯(lián)歡迎聯(lián)系:13518219792,為您提供成都網站建設網頁設計及定制高端網站建設服務,創(chuàng)新互聯(lián)網頁制作領域10多年,包括成都柴油發(fā)電機等多個行業(yè)擁有豐富的網站運維經驗,選擇創(chuàng)新互聯(lián),為企業(yè)保駕護航。

解決方法是在controller類的后面加個注解:

@InitBinder
  protected void initDateFormatBinder(WebDataBinder binder) {
    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
    binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true));
  }

注意,上面的代碼CustomDateEditor構造函數(shù)要傳個true參數(shù),表示允許傳空字符串來進行日期類型轉換

CustomDateEditor 里源碼

public class CustomDateEditor extends PropertyEditorSupport {
  private final DateFormat dateFormat;
  private final boolean allowEmpty;
  private final int exactDateLength;

  public CustomDateEditor(DateFormat dateFormat, boolean allowEmpty) {
    this.dateFormat = dateFormat;
    this.allowEmpty = allowEmpty;
    this.exactDateLength = -1;
  }
  ....
}

Spring Bean類的裝載是通過BeanWrapperImpl來實現(xiàn),可以寫個簡單的例子,驗證這個問題,DispatchInfoModel 類是我自己的測試類,里面有signDate這個date類型的參數(shù)

設置為true的情況,是可以正常運行的

public class mytest {
  public static void main(String[] args) {
    DispatchInfoModel tm = new DispatchInfoModel();
    BeanWrapper bw = new BeanWrapperImpl(tm);
    bw.registerCustomEditor(Date.class, new CustomDateEditor(new SimpleDateFormat("yyyy-MM-dd"), true));
    bw.setPropertyValue("signDate", "");
    System.out.println(tm.getSignDate());
  }
}

設置為false的情況,會拋出異常:

public class mytest {
  public static void main(String[] args) {
    DispatchInfoModel tm = new DispatchInfoModel();
    BeanWrapper bw = new BeanWrapperImpl(tm);
    bw.registerCustomEditor(Date.class, new CustomDateEditor(new SimpleDateFormat("yyyy-MM-dd"), false));
    bw.setPropertyValue("signDate", "");
    System.out.println(tm.getSignDate());
  }
}

SpringMVC日期類型接收空值異常問題解決方法

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。


分享名稱:SpringMVC日期類型接收空值異常問題解決方法
文章轉載:http://www.dlmjj.cn/article/ppiddh.html