W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
在Spring的上個版本中,用戶需要在web應(yīng)用的上下文中定義一個或多個的HandlerMapping
bean,用以將進入容器的web請求映射到合適的處理器方法上。允許在控制器上添加注解后,通常你就不必這么做了,因為RequestMappingHandlerMapping
類會自動查找所有注解了@RequestMapping
的@Controller
控制器bean。同時也請知道,所有繼承自AbstractHandlerMapping
的處理器方法映射HandlerMapping
類都擁有下列的屬性,你可以對它們進行定制:
interceptors
列表,指示了應(yīng)用其上的一個攔截器列表。處理器方法攔截器會在 Spring MVC 使用HandlerInterceptor攔截請求中討論。defaultHandler
,生效的默認處理器,when this handler mapping does not result in a matching handler.order
,根據(jù)order(見org.springframework.core.Ordered
接口)屬性的值,Spring會對上下文可用的所有處理器映射進行排序,并應(yīng)用第一個匹配成功的處理器alwaysUseFullPath
(總是使用完整路徑)。若設(shè)置為true
,Spring將在當前Servlet上下文中總是使用完整路徑來查找合適的處理器。若設(shè)置為false
(默認就為false
),則使用當前Servlet的mapping路徑。舉個例子,若一個Servlet的mapping路徑是/testing/*
,并且alwaysUseFullPath
屬性被設(shè)置為true
,此時用于查找處理器的路徑將是/testing/viewPage.html
;而若alwaysUseFullPath
屬性的值為false
,則此時查找路徑是/viewPage.html
urlDecode
,默認設(shè)置為true
(也是Spring 2.5的默認設(shè)置)。若你需要比較加密過的路徑,則把此標志設(shè)為false
。需要注意的是,HttpServletRequest
永遠以未加密的方式存儲Servlet路徑。此時,該路徑將無法匹配到加密過的路徑下面的代碼展示了配置一個攔截器的方法:
<beans>
<bean id="handlerMapping" class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping">
<property name="interceptors">
<bean class="example.MyInterceptor"/>
</property>
</bean>
<beans>
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: