SpringMVC handleMapping 處理器映射器 屬性清單

來源:互聯網
上載者:User

標籤:匹配   自己   upd   不同的   help   配置   pre   127.0.0.1   hand   

映射器的屬性清單

defaultHandler         在映射與所有處理器都不匹配的情況下,指定預設的處理器(處理器即你定義的Controller(action)類)

order                        Spring根據order的值對映射器進行排序,並使用第一個匹配的處理器,order值越小優先順序越高(相當於鏈的索引位置,從0開始,0級最高)

interceptors             使用的攔截器列表

alwaysUseFullPath 是否使用servlet context中的全路徑匹配處理器,預設false

urlDecode        預設false,如果你希望映射器在尋找處理器之前對URL/URI進行解碼,那麼將此屬性設定為true.

lazyInitHandlers      預設false,可以對單例處理器進行延遲初始化

urlPathHelper     可以通過此屬性來檢查URL,一般無需修改其預設值

spingmvc的映射器有很多,但常用的就三種BeanNameUrlHandlerMapping(預設映射器),SimpleUrlHandlerMapping,ControllerClassNameHandlerMapping

說明:我的web.xml裡用的是<url-pattern>*.action</url-pattern>

1.BeanNameUrlHandlerMapping

顧名思義,是以Bean的name屬性作為url來訪問的時候進行映射,那麼這個bean指的是什麼?當然指的我們開發人員自己定義的Controller(action)

這裡我使用的是userController

地址欄:http://127.0.0.1:8080/項目/userController.action

具體設定檔見下面

 

 

2.SimpleUrlHandlerMapping

這個映射器通常用於處理多個請求對應一個Controller(action)的情況,當然也可以用別名的方式替代此映射器.具體設定檔見下面

 

 

3.ControllerClassNameHandlerMapping

使用Controller的類名(首字母小寫).action來訪問時進行映射

使用這個映射器要注意的是你的Controller類命名必須是xxxController,而不能是xxxAction這種,否則會找不到

當然,你可以給它加個defaultHandler屬性,指定一個預設處理器(即你定義的Controller類),但這樣就沒有必要使用此映射器了

 

 

4.設定檔

 1  <!-- 使用BeanNameUrlHandlerMapping完成多個請求對應一個Action--> 2       <bean name="/add.action,/delete.action,/update.action,/find.action" class="cn.tele.springmvc_003.UserAction"></bean> 3          4       <!-- 註冊action時給與id屬性 --> 5       <bean id="userAction" name="/userController.action" class="cn.tele.springmvc_003.UserController"></bean> 6       7       <!-- 映射器(預設) --> 8       <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean> 9      10       <!-- 使用SimpleUrlHandlerMapping完成多個請求對應一個Action -->11       <!-- <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">12           <property name="mappings">13                   <props>14                   <prop key="/add.action">userAction</prop>15                   <prop key="/delete.action">userAction</prop>16                   <prop key="/update.action">userAction</prop>17                   <prop key="/find.action">userAction</prop>18                   </props>19           </property>20       </bean>     -->21     22     <!-- 通過類名.action的形式來訪問,userController.action類名首字母小寫 -->23     <!-- <bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping">24         <property name="defaultHandler" ref="userAction"></property>25     </bean> -->

 

值得一提的是這些映射器可以共存,但同一時刻只能有一個映射器起作用,調用哪一個映射器取決於你的訪問方式和映射器的order值,多個不同的映射器組成了一條

鏈,order值越小,優先順序越高,當優先順序較高的映射器無法處理時會交給優先順序低的處理,都無法匹配到處理器(即你定義的Controller)時Spring才會報錯

 

 

SpringMVC handleMapping 處理器映射器 屬性清單

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.