1. 程式人生 > >springmvc—handlermapping三種對映

springmvc—handlermapping三種對映

     handlermapping負責對映中央處理器轉發給controller的對映策略,簡單說就是控制中央處理器的請求觸發哪一個controller。

     handlermapping的配置也是在springmvc的配置檔案中。

三種對映方式

1.BeanNameUrlHandlerMapping(預設)

按照controllername來對映尋找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的首字母小寫類名訪問。