国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > JSP > 正文

SpringMVC自定義屬性編輯器詳解及實(shí)例

2024-09-05 00:23:08
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

SpringMVC自定義屬性編輯器詳解及實(shí)例

自定義springMVC的屬性編輯器主要有兩種方式,一種是使用@InitBinder標(biāo)簽在運(yùn)行期注冊(cè)一個(gè)屬性編輯器,這種編輯器只在當(dāng)前Controller里面有效;還有一種是實(shí)現(xiàn)自己的 WebBindingInitializer,然后定義一個(gè)AnnotationMethodHandlerAdapter的bean,在此bean里面進(jìn)行注冊(cè) ,這種屬性編輯器是全局的。 

第一種方式:

import java.beans.PropertyEditorSupport; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date;  import javax.servlet.http.HttpServletResponse;  import org.springframework.beans.propertyeditors.CustomDateEditor; import org.springframework.stereotype.Controller; import org.springframework.web.bind.WebDataBinder; import org.springframework.web.bind.annotation.InitBinder; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping;  @Controller public class GlobalController {       @RequestMapping("test/{date}")   public void test(@PathVariable Date date, HttpServletResponse response) throws IOException     response.getWriter().write( date);    }      @InitBinder//必須有一個(gè)參數(shù)WebDataBinder   public void initBinder(WebDataBinder binder) {     binder.registerCustomEditor(Date.class, new CustomDateEditor(new SimpleDateFormat("yyyy-MM-dd"), false));          binder.registerCustomEditor(int.class, new PropertyEditorSupport() {        @Override       public String getAsText() {         // TODO Auto-generated method stub         return getValue().toString();       }        @Override       public void setAsText(String text) throws IllegalArgumentException {         // TODO Auto-generated method stub         System.out.println(text + "...........................................");         setValue(Integer.parseInt(text));       }            });   }       } 

  這種方式這樣寫了就可以了

 第二種:

1.定義自己的WebBindingInitializer

package com.xxx.blog.util;  import java.util.Date; import java.text.SimpleDateFormat;  import org.springframework.beans.propertyeditors.CustomDateEditor; import org.springframework.web.bind.WebDataBinder; import org.springframework.web.bind.support.WebBindingInitializer; import org.springframework.web.context.request.WebRequest;  public class MyWebBindingInitializer implements WebBindingInitializer {    @Override   public void initBinder(WebDataBinder binder, WebRequest request) {     // TODO Auto-generated method stub     binder.registerCustomEditor(Date.class, new CustomDateEditor(new SimpleDateFormat("yyyy-MM-dd"), false));   }  }  

2.在springMVC的配置文件里面定義一個(gè)AnnotationMethodHandlerAdapter,并設(shè)置其WebBindingInitializer屬性為我們自己定義的WebBindingInitializer對(duì)象 

<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">     <property name="cacheSeconds" value="0"/>     <property name="webBindingInitializer">       <bean class="com.xxx.blog.util.MyWebBindingInitializer"/>     </property>   </bean> 

 第二種方式經(jīng)過(guò)上面兩步就可以定義一個(gè)全局的屬性編輯器了。

注意:當(dāng)使用了<mvc:annotation-driven />的時(shí)候,它 會(huì)自動(dòng)注冊(cè)DefaultAnnotationHandlerMapping與AnnotationMethodHandlerAdapter 兩個(gè)bean。這時(shí)候第二種方式指定的全局屬性編輯器就不會(huì)起作用了,解決辦法就是手動(dòng)的添加上述bean,并把它們加在<mvc:annotation-driven/>的前面。

感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到JSP教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 湄潭县| 隆化县| 绥阳县| 北流市| 榆树市| 格尔木市| 清徐县| 云林县| 正定县| 黑山县| 涿州市| 云南省| 灵武市| 香河县| 丰台区| 深州市| 普安县| 堆龙德庆县| 万山特区| 金乡县| 故城县| 福泉市| 鸡东县| 肇州县| 宜春市| 深水埗区| 靖安县| 海门市| 渭源县| 柳林县| 四川省| 宁武县| 青铜峡市| 科技| 沙雅县| 泽州县| 南江县| 左权县| 亳州市| 龙陵县| 乌兰县|