国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - 詳解SpringMVC注解@initbinder解決類型轉換問題

詳解SpringMVC注解@initbinder解決類型轉換問題

2021-04-12 09:21aheizi Java教程

本篇文章主要介紹了詳解SpringMVC注解@initbinder解決類型轉換問題,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

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

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

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

代碼如下:

?
1
2
3
4
5
6
@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的配置文件加上

?
1
2
3
4
5
6
7
8
9
10
<!-- 解析器注冊 -->
<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"/>

換種寫法

?
1
2
3
4
5
6
7
<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自己提供了大量的實現類,諸如CustomDateEditor ,CustomBooleanEditor,CustomNumberEditor等許多,基本上夠用。

使用時候調用WebDataBinder的registerCustomEditor方法

registerCustomEditor源碼:

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

第一個參數requiredType是需要轉化的類型。

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

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

我們可以自己構造:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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();
  }
}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:https://www.cnblogs.com/aheizi/p/5440884.html

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 精品欧美一区二区三区久久久 | 求av网址 | 亚洲精品一区二区三区精华液 | 91亚洲国产成人久久精品网站 | 国产精品a久久久久 | 一区二区三区四区在线 | 欧美日韩国产一区二区三区 | 日韩精品无码一区二区三区 | 久久久久久久久久久久国产精品 | 国产一区在线视频观看 | 久久久久久久久国产 | 免费在线看a | 久久久精品视频免费观看 | 99国产精品99久久久久久 | 91精品综合久久久久久五月天 | 欧美色图亚洲 | 欧美日韩第一页 | 91色在线视频 | 欧美午夜精品一区二区三区电影 | 玖玖在线播放 | 久久99精品久久久久久水蜜桃 | av中文字幕免费在线观看 | 日本久久网 | 亚洲国产精品成人精品 | 高清国产一区二区三区 | 久久视频一区 | 开心久久婷婷综合中文字幕 | 亚洲成人高清在线 | 91五月天 | 欧美黄色影院 | 国产在线一区二区 | 毛片免费观看视频 | 欧美涩涩网站 | 亚洲高清久久 | 国产97在线 | 免费 | 亚洲国产精品自拍 | 一级看片 | 伦理午夜电影免费观看 | 精品无码久久久久国产 | 91久久精品国产91久久性色tv | 久久久久久久国产精品 |