成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

SpringMVC注解@initbinder如何解決類型轉(zhuǎn)換問題-創(chuàng)新互聯(lián)

小編給大家分享一下SpringMVC注解@initbinder如何解決類型轉(zhuǎn)換問題,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

創(chuàng)新互聯(lián)專注于企業(yè)全網(wǎng)整合營銷推廣、網(wǎng)站重做改版、云岡網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、html5、商城網(wǎng)站制作、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價格優(yōu)惠性價比高,為云岡等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

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

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

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

代碼如下:

@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自己提供了大量的實(shí)現(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等都是繼承了實(shí)現(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();
  }
}

以上是“SpringMVC注解@initbinder如何解決類型轉(zhuǎn)換問題”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

文章標(biāo)題:SpringMVC注解@initbinder如何解決類型轉(zhuǎn)換問題-創(chuàng)新互聯(lián)
網(wǎng)頁URL:http://jinyejixie.com/article18/ccsigp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗(yàn)、營銷型網(wǎng)站建設(shè)、標(biāo)簽優(yōu)化、網(wǎng)頁設(shè)計(jì)公司、全網(wǎng)營銷推廣、App設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化
岗巴县| 商都县| 桦川县| 阳新县| 喀喇沁旗| 江津市| 固阳县| 万源市| 盘山县| 翁源县| 禹州市| 天等县| 韩城市| 綦江县| 罗平县| 正蓝旗| 喀喇| 和平区| 罗平县| 犍为县| 蓝山县| 潮安县| 卫辉市| 临夏县| 从化市| 长治市| 江津市| 阿拉善右旗| 平潭县| 汽车| 封丘县| 搜索| 南安市| 林周县| 新巴尔虎右旗| 湾仔区| 永康市| 新津县| 泊头市| 涞水县| 彰化市|