spring mvc作為展示層的組件,從參數(shù)預(yù)處理,驗(yàn)證,攔截,渲染。無不考慮的細(xì)致入微,你所要的做的,只是接口實(shí)現(xiàn),切面接入,簡單配置。
今天我們以分頁功能展開來說明,如何把我們復(fù)雜的參數(shù)處理從控制器進(jìn)行剝離!
第一步
我們展示一個重量級的接口:HandlerMethodArgumentResolver

第一段紅色,表示在某個參數(shù)進(jìn)行了注解之后,是否啟用自定義的參數(shù)處理,其實(shí)就是一個標(biāo)識符
第二段紅色,是你的自定義的參數(shù)處理邏輯,里面可以封裝查詢參數(shù)的組裝邏輯
看一我的實(shí)現(xiàn)

重點(diǎn)看一下DataCriterias.getFromRequest()這個方法


主要分幾塊:
分頁參數(shù): sDisplayStart(起始位置),sDisplayLength(顯示條數(shù)),sEcho(頁數(shù))
查詢條件:columnDefs,某個字段的查詢,可以是完全匹配,也可以區(qū)間等等
排序條件:sortingColumnDefs,可以有多個排序條件,這個是有序的,看他的集合是LinkedList
最后組裝成一個DataCriterias
第二步:
XML配置,啟用我們自定義的參數(shù)預(yù)處理
其實(shí)就是針對RequestMappingHandlerAdapter把我們定義的DataCriteriasMethodArgumentResolver
注入進(jìn)去。

第三步:
控制器使用例子


這樣,控制器在得到分頁查詢對象之后(DataCriterias),直接調(diào)用service,把封裝好的對象傳遞過去,后面再處理。最后以一曲sugar來結(jié)尾吧,哈哈。
我的微信公眾號,歡迎溝通學(xué)習(xí)。
posted on 2016-02-24 10:49
alexcai 閱讀(2925)
評論(1) 編輯 收藏