最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解SpringMVC注解@initbinder解決類型轉(zhuǎn)換問題

 更新時間:2018年03月14日 15:53:39   作者:aheizi  
本篇文章主要介紹了詳解SpringMVC注解@initbinder解決類型轉(zhuǎn)換問題,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

在使用SpringMVC的時候,經(jīng)常會遇到表單中的日期字符串和JavaBean的Date類型的轉(zhuǎn)換,而SpringMVC默認不支持這個格式的轉(zhuǎn)換,所以需要手動配置,自定義數(shù)據(jù)的綁定才能解決這個問題。

在需要日期轉(zhuǎn)換的Controller中使用SpringMVC的注解@initbinder和Spring自帶的WebDateBinder類來操作。

WebDataBinder是用來綁定請求參數(shù)到指定的屬性編輯器.由于前臺傳到controller里的值是String類型的,當往Model里Set這個值的時候,如果set的這個屬性是個對象,Spring就會去找到對應的editor進行轉(zhuǎn)換,然后再SET進去。

代碼如下:

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

需要在SpringMVC的配置文件加上

<!-- 解析器注冊 --> 
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"> 
  <property name="messageConverters"> 
    <list> 
      <ref bean="stringHttpMessageConverter"/> 
    </list> 
  </property> 
</bean> 
<!-- String類型解析器,允許直接返回String類型的消息 --> 
<bean id="stringHttpMessageConverter" class="org.springframework.http.converter.StringHttpMessageConverter"/> 

換種寫法

<mvc:annotation-driven>
  <mvc:message-converters>
    <bean class="org.springframework.http.converter.StringHttpMessageConverter">
      <constructor-arg value="UTF-8"/>
    </bean>
  </mvc:message-converters>
</mvc:annotation-driven>

拓展:

spring mvc在綁定表單之前,都會先注冊這些編輯器,Spring自己提供了大量的實現(xiàn)類,諸如CustomDateEditor ,CustomBooleanEditor,CustomNumberEditor等許多,基本上夠用。

使用時候調(diào)用WebDataBinder的registerCustomEditor方法

registerCustomEditor源碼:

public void registerCustomEditor(Class<?> requiredType, PropertyEditor propertyEditor) {
  getPropertyEditorRegistry().registerCustomEditor(requiredType, propertyEditor);
}

第一個參數(shù)requiredType是需要轉(zhuǎn)化的類型。

第二個參數(shù)PropertyEditor是屬性編輯器,它是個接口,以上提到的如CustomDateEditor等都是繼承了實現(xiàn)了這個接口的PropertyEditorSupport類。

我們也可以不使用他們自帶的這些編輯器類。

我們可以自己構(gòu)造:

import org.springframework.beans.propertyeditors.PropertiesEditor;
public class DoubleEditor extends PropertyEditorSupport {
  @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();
  }
}

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

相關文章

  • 深入解析Jdk8中Stream流的使用讓你脫離for循環(huán)

    深入解析Jdk8中Stream流的使用讓你脫離for循環(huán)

    這篇文章主要介紹了Jdk8中Stream流的使用,讓你脫離for循環(huán),本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-02-02
  • Spring Cloud Alibaba配置多環(huán)境管理詳解與實戰(zhàn)代碼

    Spring Cloud Alibaba配置多環(huán)境管理詳解與實戰(zhàn)代碼

    本文通過實際案例詳細介紹了springboot配置多環(huán)境管理的使用,以及基于nacos的配置多環(huán)境管理的實踐,在實際開發(fā)中,配置多環(huán)境管理是一個很難避開的問題,同時也是微服務治理中一個很重要的內(nèi)容,感興趣的朋友跟隨小編一起看看吧
    2024-06-06
  • Java數(shù)據(jù)導入功能之讀取Excel文件實例

    Java數(shù)據(jù)導入功能之讀取Excel文件實例

    這篇文章主要介紹了Java數(shù)據(jù)導入功能之讀取Excel文件實例,本文給出了jar包的下載地址以及讀取Excel文件的代碼實例,需要的朋友可以參考下
    2015-06-06
  • MyBatis關于二級緩存問題

    MyBatis關于二級緩存問題

    本篇文章主要介紹了MyBatis關于二級緩存問題,二級緩存是Mapper級別的緩存,多個sqlSession操作同一個Mapper,其二級緩存是可以共享的。
    2017-03-03
  • Java結(jié)合redis實現(xiàn)接口防重復提交

    Java結(jié)合redis實現(xiàn)接口防重復提交

    本文主要介紹了Java結(jié)合redis實現(xiàn)接口防重復提交,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • java實現(xiàn)停車場管理系統(tǒng)

    java實現(xiàn)停車場管理系統(tǒng)

    這篇文章主要為大家詳細介紹了java實現(xiàn)停車場管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • Java 實戰(zhàn)項目錘煉之樸素風格個人博客系統(tǒng)的實現(xiàn)流程

    Java 實戰(zhàn)項目錘煉之樸素風格個人博客系統(tǒng)的實現(xiàn)流程

    讀萬卷書不如行萬里路,只學書上的理論是遠遠不夠的,只有在實戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用Java+vue+Springboot+ssm+mysql+maven+redis實現(xiàn)一個樸素風格的個人博客系統(tǒng),大家可以在過程中查缺補漏,提升水平
    2021-11-11
  • SpringBoot集成SQL?Server的詳細指南

    SpringBoot集成SQL?Server的詳細指南

    SQL?Server是由Microsoft開發(fā)和推廣的以客戶/服務器(c/s)模式訪問、使用Transact-SQL語言的關系數(shù)據(jù)庫管理系統(tǒng)(DBMS),本文給大家介紹了Spring?Boot集成SQL?Server的詳細指南,需要的朋友可以參考下
    2024-11-11
  • Java Junit單元測試實例詳解

    Java Junit單元測試實例詳解

    在本篇文章里小編給大家分享的是關于Java Junit單元測試的相關知識點內(nèi)容,有興趣的朋友們學習下。
    2019-11-11
  • kaptcha驗證碼使用方法詳解

    kaptcha驗證碼使用方法詳解

    這篇文章主要為大家詳細介紹了kaptcha驗證碼的使用方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-12-12

最新評論

泌阳县| 沅陵县| 南京市| 佛坪县| 成安县| 额敏县| 托克托县| 邓州市| 济源市| 饶河县| 涿州市| 遵义县| 广饶县| 颍上县| 临武县| 乌兰察布市| 安丘市| 乌恰县| 微博| 固始县| 利川市| 治多县| 韶关市| 栾城县| 奉新县| 碌曲县| 福安市| 太保市| 百色市| 屏东市| 霍邱县| 栖霞市| 乐业县| 舟曲县| 集贤县| 德化县| 安多县| 禹城市| 安阳县| 德昌县| 西宁市|