bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

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ù),價(jià)格優(yōu)惠性價(jià)比高,為云岡等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

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

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

WebDataBinder是用來綁定請求參數(shù)到指定的屬性編輯器.由于前臺傳到controller里的值是String類型的,當(dāng)往Model里Set這個(gè)值的時(shí)候,如果set的這個(gè)屬性是個(gè)對象,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等許多,基本上夠用。

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

registerCustomEditor源碼:

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

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

第二個(gè)參數(shù)PropertyEditor是屬性編輯器,它是個(gè)接口,以上提到的如CustomDateEditor等都是繼承了實(shí)現(xiàn)了這個(gè)接口的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://vcdvsql.cn/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)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化