W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
ControllerClassNameHandlerMapping
類是HandlerMapping
接口的一個實現(xiàn),它是通過一個約定來解析請求URL及處理該請求的@Controller
控制器實例之間的映射關(guān)系。
請看下面一個簡單的控制器實現(xiàn)。請注意留意該類的 名稱:
public class **ViewShoppingCartController** implements Controller {
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) {
// 這個例子中方法的具體實現(xiàn)并不重要,故忽略。
}
}
對應(yīng)的Spring Web MVC配置文件如下所示:
<bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"/>
<bean id="**viewShoppingCart**" class="x.y.z.ViewShoppingCartController">
<!-- 注入需要的依賴 -->
</bean>
ControllerClassNameHandlerMapping
會查找當(dāng)前應(yīng)用上下文中注冊的所有處理器(也即控制器)bean,并去除類名的Controller
后綴作為決定處理器映射的依據(jù)。因此,類名ViewShoppingCartController
會被映射到匹配/viewshoppingcart*
的請求URL上。
讓我們多看幾個例子,這樣你對于核心的思想會馬上熟悉起來(注意URL中路徑是全小寫,而Controller
控制器類名符合駝峰命名法):
WelcomeController
將映射到/welcome*
請求URLHomeController
將映射到/home*
請求URLIndexController
將映射到/index*
請求URLRegisterController
將映射到/register*
請求URL對于MultiActionController
處理器類,映射規(guī)則要稍微復(fù)雜一些。請看下面的代碼,假設(shè)這里的控制器都是MultiActionController
的實現(xiàn):
AdminController
將映射到/admin/*
請求URLCatalogController
將映射到/catalog/*
請求URL只要所有控制器Controller
實現(xiàn)都遵循xxxController
這樣的命名規(guī)范,那么ControllerClassNameHandlerMapping
能把你從定義維護一個 長長長 SimpleUrlHandlerMapping
映射表的重復(fù)工作中拯救出來。
ControllerClassNameHandlerMapping
類繼承自 AbstractHandlerMapping
基類。因此,你可以視它與其他HandlerMapping
實現(xiàn)一樣,定義你所需要的攔截器HandlerInterceptor
實例及其他所有東西。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: