springmvc—handlermapping三種對映
阿新 • • 發佈:2019-01-22
handlermapping負責對映中央處理器轉發給controller的對映策略,簡單說就是控制中央處理器的請求觸發哪一個controller。
handlermapping的配置也是在springmvc的配置檔案中。
三種對映方式
1.BeanNameUrlHandlerMapping(預設)
按照controller的name來對映尋找controlller,它是預設存在的。
<!-- 配置controller --> <bean id="testController" name="/hello.do" class="com.roy.controller.TestController"/> <!-- 按照controller的name來對映尋找controlller,預設存在的 --> <beanclass="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>
2.SimplerUrlHandlerMapping
使用簡單url對映,與預設的對映可以各自獨立存在,但是預設的不存在的時候,配置的controller不能使用。
可以使用此對映來分類配置controller和配置url的各自職責
<!-- 配置controller --> <bean id="testController" class="com.roy.controller.TestController"/> <!-- 按照url來對映 --> <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <property name="mappings"> <props> <prop key="/hello.do">testController</prop> </props> </property> </bean>
3.contraollerClassNameHandlerMapping
控制類的類名控制器,訪問時類名首字母需要小寫,需要加入.do,直接使用controller的首字母小寫類名訪問
<bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"></bean>
controller中的程式碼
package com.roy.controller; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.AbstractController; public class TestController extends AbstractController { @Override protected ModelAndView handleRequestInternal(HttpServletRequest arg0, HttpServletResponse arg1) throws Exception { System.out.println("hello controller"); return new ModelAndView("index"); } }
三種hanlermapping的配置。第一種是直接預設存在的,可以不需要在配置檔案中配置;第二種可以使用此對映來分類配置controller和配置url的各自職責;第三種直接使用controller的首字母小寫類名訪問。