欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringMVC中利用@InitBinder來對頁面數(shù)據(jù)進(jìn)行解析綁定的方法

 更新時間:2018年03月15日 08:58:54   作者:夏雪冬日  
本篇文章主要介紹了SpringMVC中利用@InitBinder來對頁面數(shù)據(jù)進(jìn)行解析綁定的方法,非常具有實用價值,需要的朋友可以參考下

在使用SpingMVC框架的項目中,經(jīng)常會遇到頁面某些數(shù)據(jù)類型是Date、Integer、Double等的數(shù)據(jù)要綁定到控制器的實體,或者控制器需要接受這些數(shù)據(jù),如果這類數(shù)據(jù)類型不做處理的話將無法綁定。

這里我們可以使用注解@InitBinder來解決這些問題,這樣SpingMVC在綁定表單之前,都會先注冊這些編輯器。一般會將這些方法些在BaseController中,需要進(jìn)行這類轉(zhuǎn)換的控制器只需繼承BaseController即可。其實Spring提供了很多的實現(xiàn)類,如CustomDateEditor、CustomBooleanEditor、CustomNumberEditor等,基本上是夠用的。

demo如下:

public class BaseController {

  @InitBinder
  protected void initBinder(WebDataBinder binder) {
    binder.registerCustomEditor(Date.class, new MyDateEditor());
    binder.registerCustomEditor(Double.class, new DoubleEditor()); 
    binder.registerCustomEditor(Integer.class, new IntegerEditor());
  }

  private class MyDateEditor extends PropertyEditorSupport {
    @Override
    public void setAsText(String text) throws IllegalArgumentException {
      SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
      Date date = null;
      try {
        date = format.parse(text);
      } catch (ParseException e) {
        format = new SimpleDateFormat("yyyy-MM-dd");
        try {
          date = format.parse(text);
        } catch (ParseException e1) {
        }
      }
      setValue(date);
    }
  }
  
  public class DoubleEditor extends PropertiesEditor {  
    @Override  
    public void setAsText(String text) throws IllegalArgumentException {  
      if (text == null || text.equals("")) {  
        text = "0";  
      }  
      setValue(Double.parseDouble(text));  
    }  
    
    @Override  
    public String getAsText() {  
      return getValue().toString();  
    }  
  } 
  
  public class IntegerEditor extends PropertiesEditor {  
    @Override  
    public void setAsText(String text) throws IllegalArgumentException {  
      if (text == null || text.equals("")) {  
        text = "0";  
      }  
      setValue(Integer.parseInt(text));  
    }  
    
    @Override  
    public String getAsText() {  
      return getValue().toString();  
    }  
  } 
}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 解決idea默認(rèn)帶的equals和hashcode引起的bug

    解決idea默認(rèn)帶的equals和hashcode引起的bug

    這篇文章主要介紹了解決idea默認(rèn)帶的equals和hashcode引起的bug,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • 在SpringBoot項目中使用Spring Cloud Sentinel實現(xiàn)流量控制

    在SpringBoot項目中使用Spring Cloud Sentinel實現(xiàn)流量控制

    隨著微服務(wù)架構(gòu)的流行,服務(wù)之間的調(diào)用變得越來越頻繁和復(fù)雜,流量控制是保障系統(tǒng)穩(wěn)定性的重要手段之一,它可以幫助我們避免因過載而導(dǎo)致的服務(wù)不可用,本文將介紹如何在Spring Boot項目中使用Spring Cloud Sentinel來實現(xiàn)流量控制,需要的朋友可以參考下
    2024-08-08
  • Java8實戰(zhàn)之Stream的延遲計算

    Java8實戰(zhàn)之Stream的延遲計算

    JDK中Stream的中間函數(shù)如 filter(Predicate super T>)是惰性求值的,filter并非對流中所有元素調(diào)用傳遞給它的Predicate,下面這篇文章主要給大家介紹了關(guān)于Java8實戰(zhàn)之Stream延遲計算的相關(guān)資料,需要的朋友可以參考下
    2021-09-09
  • Java圖片處理開源框架Thumbnailator

    Java圖片處理開源框架Thumbnailator

    這篇文章主要為大家詳細(xì)介紹了Java圖片處理開源框架Thumbnailator的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • DynamicDataSource怎樣解決多數(shù)據(jù)源的事務(wù)問題

    DynamicDataSource怎樣解決多數(shù)據(jù)源的事務(wù)問題

    這篇文章主要介紹了DynamicDataSource怎樣解決多數(shù)據(jù)源的事務(wù)問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • Java中的內(nèi)存泄露問題和解決辦法

    Java中的內(nèi)存泄露問題和解決辦法

    大家好,本篇文章主要講的是Java中的內(nèi)存泄露問題和解決辦法,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • 通過System.getProperty配置JVM系統(tǒng)屬性

    通過System.getProperty配置JVM系統(tǒng)屬性

    這篇文章主要介紹了通過System.getProperty配置JVM系統(tǒng)屬性,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-10-10
  • Spring高級注解之@DependsOn詳解

    Spring高級注解之@DependsOn詳解

    這篇文章主要介紹了Spring高級注解之@DependsOn詳解,@DependsOn注解可以定義在類和方法上,意思是我這個組件要依賴于另一個組件,也就是說被依賴的組件會比該組件先注冊到IOC容器中,需要的朋友可以參考下
    2024-01-01
  • 深入理解mybatis的ParamNameResolver

    深入理解mybatis的ParamNameResolver

    ParamNameResolver是 MyBatis 中的一個重要組件,它為 MyBatis 提供了一種方便的方式來獲取方法參數(shù)的名稱,本文主要介紹了深入理解mybatis的ParamNameResolver,具有一定的參考價值,感興趣的可以了解一下
    2023-08-08
  • Java使用Graphics2D繪制SVG和PNG的方法

    Java使用Graphics2D繪制SVG和PNG的方法

    Java提供了許多圖形處理類和方法,如Graphics2D、AffineTransform、Stroke等,這些都可以用于繪制SVG圖像,Graphics2D是Java中用于繪制2D圖形的類,本文給大家介紹如何使用Graphics2D繪制SVG和PNG,需要的朋友可以參考下
    2023-06-06

最新評論