springmvc(二)非註解處理器映射器,非註解處理器適配器

非註解的處理器映射器

前面我們使用的非註解的映射器是BeanNameUrlHandlerMapping,還有一種就是SimpleUrlHandlerMapping,可以配置多個映射,比如多個url對應同一個handler。第一個映射器根據handler的bean的name屬性查找handler,後一個映射器可以根據Handler bean的id屬性配置映射關係。

在springmvc的配置文件中,可以配置多個處理器映射器,比如上面兩個映射器可以同時在配置文件中存在,前端控制器判斷url能能映射到哪個Handler上

 

結果展示: 

 

非註解的處理器適配器 

前面我們用到的處理器適配器是SimpleControllerAdapter,根據源碼的support()方法知道這個適配器只能處理實現了Controller接口的Handler,還有一種適配器就是HttpRequestHandlerAdapter,也是根據support()方法知道這個適配器只能處理實現了HttpRequestHandler接口的Handler,那麼我們就在編寫一個相關規則的Handler,如下,可以看到這個接口中的方法不是返回modelandview對象,但是我們可以用request對象來設置模型數據和實現轉發

爲了實驗我們在springmvc的配置文件配置這個handler,那麼當然也要在配置文件中配置處理這種handler的適配器,以及能映射到這個handler的url,至於使用哪個適配器都可以,根據id還是name

結果: 

 使用這個適配器的好處是可以根據需要,通過修改response,設置響應的數據格式

使用非註解的處理器適配器,映射器,視圖解析器,也可以不在配置文件中配置,在web.xml中我們配置了前端控制器,它有自己默認會調用的這些組件類型

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章