springmvc-學習總結-非註解式處理器和映射器

學習參考這裏:http://jinnianshilongnian.iteye.com/blog/1752171

非註解式映射器適配器1

<!-- 映射器1 -->
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping">
	<property name="interceptors">
		<list>
			<ref bean="myInterceptorOne"/>
			<ref bean="myInterceptorTwo"/>
		</list>
	</property>
</bean> 

<!-- 適配器1 -->
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/><!-- 要求編寫的處理器action實現controller接口 -->

<!-- 試圖解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">  
	<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>  
	<property name="prefix" value="/WEB-INF/jsp/"/>  
	<property name="suffix" value=".jsp"/>  
</bean>

<!-- 處理器 -->
<bean id="hello1"  class="springMVC.HelloWorldController"></bean>

<!-- 攔截器 -->
<bean id="myInterceptorOne" class="lee.springmvc.interceptor.MyInterceptorOne"></bean>
<bean id="myInterceptorTwo" class="lee.springmvc.interceptor.MyInterceptorTwo"></bean>	

非註解式映射器適配器2

<!-- 映射器1 
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping">
	<property name="interceptors">
		<list>
			<ref bean="myInterceptorOne"/>
			<ref bean="myInterceptorTwo"/>
		</list>
	</property>
</bean> 
-->
<!-- 映射器2 -->
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
	<property name="interceptors">
		<list>
			<ref bean="myInterceptorOne"/>
			<ref bean="myInterceptorTwo"/>
		</list>
	</property>
	<property name="mappings"><!-- mappings可以替換爲urlMap。注:配置需要改變 -->
		<props>
			<prop key="/helloABC">hello1</prop><!-- 對url爲/helloABC進行訪問,跳轉到ID爲hello1的處理器action -->
			<prop key="/helloDEF">hello2</prop>
		</props>
	</property>
</bean>

<!-- 適配器1 -->
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/><!-- 要求編寫的處理器action實現controller接口 -->

<!-- 適配器2 -->
<bean class="org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter"></bean><!-- 要求編寫的處理器action實現HttpRequestHandler接口 -->

<!-- 試圖解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">  
	<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>  
	<property name="prefix" value="/WEB-INF/jsp/"/>  
	<property name="suffix" value=".jsp"/>  
</bean>

<!-- 處理器 -->
<bean id="hello1" name="/hello" class="springMVC.HelloWorldController"></bean>

<bean id="hello2" class="springMVC.Controller2"></bean>

<!-- 攔截器 -->
<bean id="myInterceptorOne" class="lee.springmvc.interceptor.MyInterceptorOne"></bean>
<bean id="myInterceptorTwo" class="lee.springmvc.interceptor.MyInterceptorTwo"></bean>	

非註解的映射器,適配器用的分別是:org.springframework.web.servlet.handler.SimpleUrlHandlerMapping和org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter。此時適配器要求我們定義的處理器action實現HttpRequestHandler接口。映射器我們可以配置mappings或者urlMap屬性,將處理器action和自定義的請求url進行綁定。注意:此處我們綁定的是處理器action的id而不是name。

處理器action的代碼示例如下:

public class Controller2 implements HttpRequestHandler {

	public void handleRequest(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		request.setAttribute("message", "Hello World Controller2");
		request.getRequestDispatcher("/WEB-INF/jsp/hello.jsp").forward(request, response);
		

	}
}









發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章