成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

3.13、@InitBinder 和 WebDataBinder

dreamGong / 3260人閱讀

摘要:標(biāo)記初始化的方法,被用于填充被注解的處理方法的命令和表單對象參數(shù)。初始化綁定器方法必須不帶返回值,所以它們通常被聲明為的。典型的參數(shù)包括和或者,允許用代碼方式注冊特定上下文的編輯器。詳情見使用和通知控制器一節(jié)。

??這一部分示例見這個項(xiàng)目的 mvc 分支下的 WebDataBinderController.java

① 用@InitBinder自定義數(shù)據(jù)綁定

??用@InitBinder注解的控制器方法,允許你直接在你的控制器類中配置 Web 數(shù)據(jù)綁定。@InitBinder標(biāo)記初始化WebDataBinder的方法,WebDataBinder被用于填充被注解的處理方法的命令和表單對象參數(shù)。

??這些初始化綁定器(Init-binder)方法支持@RequestMapping方法支持的所有參數(shù),處理命令/表單對象以及相關(guān)的校驗(yàn)結(jié)果對象。初始化綁定器方法必須不帶返回值,所以它們通常被聲明為 void 的。典型的參數(shù)包括WebDataBinderWebRequest或者java.util.Locale,允許用代碼方式注冊特定上下文的編輯器(context-specific editors)。

??下面的例子演示了使用@InitBinder為所有的java.util.Date表單屬性配置一個CustomDateEditor

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

    // ...
}

??相對地,從 Spring 4.2 開始,考慮使用addCustomFormatter來指定Formatter實(shí)現(xiàn)以代替PropertyEditor實(shí)例。如果你恰好在一個共享的FormattingConversionService中也有一個個基于Formatter的設(shè)置(setup),這會非常用,同樣的規(guī)則可以用重用于控制器指定的綁定規(guī)則的變化:

@Controller
public class MyFormController 
{
    @InitBinder
    protected void initBinder(WebDataBinder binder) 
    {
        binder.addCustomFormatter(new DateFormatter("yyyy-MM-dd"));
    }
    // ...
}
② 配置一個自定義的WebBindingInitializer

??為了表達(dá)(externalize)數(shù)據(jù)綁定初始化,你可以提供一個自定義的WebBindingInitializer接口實(shí)現(xiàn),然后你可以通過為RequestMappingHandlerAdapter來提供一個自定義 Bean 配置來啟動WebBindingInitializer,所以要重寫默認(rèn)配置。

??下面的例子來自 PetClinic 應(yīng)用程序(雖然文檔上說了一下,可我也不知道這個項(xiàng)目在哪里……),展示了一個配置,使用一個自定義WebBindingInitializer接口實(shí)現(xiàn)——org.springframework.samples.petclinic.web.ClinicBindingInitializer,它配置的PropertyEditors需要幾個控制器。


    
    
        
    

??@InitBinder方法也可以定義在一個帶有@ControllerAdvice注解的類中,在這種情況下,它們用于匹配控制器。這提供了一個使用WebBindingInitializer的代替方法。詳情見“使用@ControllerAdvice@RestControllerAdvice通知控制器一節(jié)”。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/66058.html

相關(guān)文章

  • ControllerAdvice攔截器

    摘要:看成提供的一個特殊的攔截器。是一個,用于定義最主要用途,和方法,適用于所有使用方法攔截。為所有封裝統(tǒng)一異常處理代碼。為所有設(shè)置全局變量。用于為所有設(shè)置某個類型的數(shù)據(jù)轉(zhuǎn)換器。 Spring3.2開始提供的新注解,控制器增強(qiáng)(AOP),最主要的應(yīng)用是做統(tǒng)一的異常處理。@ControllerAdvice(看成spring mvc提供的一個特殊的攔截器)。@ControllerAdvice是一...

    caohaoyu 評論0 收藏0
  • Spring處理器(Controller)全局建言

    摘要:我們可以寫一個類,在上面注解控制器建言可以有三種建言第一步編寫全局建言類你可以在目錄下編寫一個類我建議放在工具包下如圖很簡單的我們就創(chuàng)建了的增強(qiáng)器第二步編寫功能增強(qiáng)器有三種功能全局異常增強(qiáng)通過的屬性過濾攔截的條件,可以攔截所有的表單初始化增 @ControllerAdvice我們可以寫一個類,在上面注解@ControllerAdvice控制器建言可以有三種建言: 第一步:編寫全局建言類...

    bovenson 評論0 收藏0
  • SpringMVC之Controller常用注解功能全解析

    摘要:分發(fā)處理器將會掃描使用了該注解的類的方法,并檢測該方法是否使用了注解。這種絕對路徑和相對路徑所組合成的最終路徑都是相對于根路徑而言的。屬性屬性主要是用于限制能夠訪問的方法類型的。屬性的用法和功能與屬性相似。使用標(biāo)記的參數(shù)。 一、簡介 在SpringMVC 中,控制器Controller 負(fù)責(zé)處理由DispatcherServlet 分發(fā)的請求,它把用戶請求的數(shù)據(jù)經(jīng)過業(yè)務(wù)處理層處理之后封...

    wanghui 評論0 收藏0
  • 一次線上問題的排查解決過程

    摘要:排查異常日志,發(fā)現(xiàn)沒有該問題存在。測試功能正常,沒有重現(xiàn)線上問題。解決問題原因定位好了,剩下的就是如何解決了。兩個方案修改線上配置該上實(shí)施難度系數(shù)高,因?yàn)楣臼褂玫慕y(tǒng)一發(fā)布部署平臺,開發(fā)人員無服務(wù)器操作權(quán)限。 問題 XX系統(tǒng)中,一個用戶需要維護(hù)的項(xiàng)目數(shù)過多,填寫的任務(wù)數(shù)超多,產(chǎn)生了一次工時保存中,只有前面一部分的xx數(shù)據(jù)持久化到數(shù)據(jù)庫,后面的數(shù)據(jù)沒有保存。 圖1 showImg(htt...

    宋華 評論0 收藏0
  • 一次線上問題的排查解決過程

    摘要:排查異常日志,發(fā)現(xiàn)沒有該問題存在。測試功能正常,沒有重現(xiàn)線上問題。解決問題原因定位好了,剩下的就是如何解決了。兩個方案修改線上配置該上實(shí)施難度系數(shù)高,因?yàn)楣臼褂玫慕y(tǒng)一發(fā)布部署平臺,開發(fā)人員無服務(wù)器操作權(quán)限。 問題 XX系統(tǒng)中,一個用戶需要維護(hù)的項(xiàng)目數(shù)過多,填寫的任務(wù)數(shù)超多,產(chǎn)生了一次工時保存中,只有前面一部分的xx數(shù)據(jù)持久化到數(shù)據(jù)庫,后面的數(shù)據(jù)沒有保存。 圖1 showImg(htt...

    airborne007 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<