SpringMVC三种映射处理器的用法

spring的三种映射处理器的控制器***Controller要继承AbstractController类并重写protected ModelAndView handleRequestInternal(){}方法

(一) BeanNameUrlHandlerMapping  (默认)可以省略不写,不常用;

  1.   <!-- 配置文件形式要配置的组建:Controller,handlermapping(有默认规则),viewResolver,interceptor -->         
  2.         <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">  
  3.         <!-- 配置从项目根目录到一端路径 -->  
  4.             <property name="prefix" value="/WEB-INF/jsp/"/>  
  5.             <!-- 文件后缀名称 -->  
  6.             <property name="suffix" value=".jsp"/>  
  7.         </bean>  
  8.           
  9.         <!-- 配置controller,name为要访问的控制器的路径-->  
  10.         <bean id="TestController" name="/hello.do" class="com.url.controller.TestController"></bean>  
  11.         <!-- BeanNameUrlHandlerMapping 默认配置就是,所以用的时候,就不用配置 -->  
  12.         <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>  

 

(二)SimpleUrlHandlerMapping是Spring MVC中适用性最强的Handler Mapping类,允许明确指定URL模式和Handler的映射关系。有两种方式声明SimpleUrlHandlerMapping。

(第一种方式)prop key

key是URL模式,属性值是Handler的id或者name,其中id与name可以任意命名,要尽量做到见名知意

<beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:context="http://www.springframework.org/schema/context"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="
   http://www.springframework.org/schema/beans     
   http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
   http://www.springframework.org/schema/context 
   http://www.springframework.org/schema/context/spring-context-3.0.xsd">


<!--    <context:component-scan base-package="com.sdga" /> -->


   <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
      <property name="prefix" value="/WEB-INF/jsp/" />
      <property name="suffix" value=".jsp" />
   </bean>
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/welcome.html">welcomeController</prop>
<prop key="/helloWorld.html">helloController</prop>

<propkey="/*/welcome.htm">welcomeController</prop>

<propkey="/helloGuest.htm">helloGuestController</prop> 

</props>
</property>
</bean>  
     <bean id="helloController" class="com.sdga.controller.HelloController"/>   
     <bean id="welcomeController" class="com.sdga.controller.WelcomeController"/>
        
</beans>

(第二种方式)value

等号左边是URL模式,右边是Handler的ID或者名字。

<beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:context="http://www.springframework.org/schema/context"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="
   http://www.springframework.org/schema/beans     
   http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
   http://www.springframework.org/schema/context 
   http://www.springframework.org/schema/context/spring-context-3.0.xsd">


<!--    <context:component-scan base-package="com.sdga" /> -->


   <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
      <property name="prefix" value="/WEB-INF/jsp/" />
      <property name="suffix" value=".jsp" />
   </bean>
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<value>

/welcome.htm=welcomeController

/*/welcome.htm=welcomeController

/helloGuest.htm=helloGuestController

</value>
</property>
</bean>  
     <bean id="helloController" class="com.sdga.controller.HelloController"/>   
     <bean id="welcomeController" class="com.sdga.controller.WelcomeController"/>
        
</beans>

(二)Controller要继承AbstractController类并重写protected ModelAndView handleRequestInternal(

HttpServletRequest request,HttpServletResponse response)throws Exception {}

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 HelloController extends AbstractController {
@Override
protected ModelAndView handleRequestInternal(HttpServletRequest request,
HttpServletResponse response) throws Exception {
// TODO Auto-generated method stub
ModelAndView model =new ModelAndView("hello");
model.addObject("message", "Hello World");
return model;
}
}

(三) ControllerClassNameHandlerMapping (控制器名称访问)

这种方式一般不采用,因为一旦控制器名称更改的话,访问路径也得跟着更改,变动性较大.

 

  1.    <!-- 配置文件形式要配置的组建:Controller,handlermapping(有默认规则),viewResolver,interceptor -->         
  2.         <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">  
  3.         <!-- 配置从项目根目录到一端路径 -->  
  4.             <property name="prefix" value="/WEB-INF/jsp/"/>  
  5.             <!-- 文件后缀名称 -->  
  6.             <property name="suffix" value=".jsp"/>  
  7.         </bean>  
  8.           
  9.         <!-- 配置controller,name为要访问的控制器的路径-->  
  10.         <bean id="TestController" class="com.url.controller.TestController"></bean>  
  11.         <!-- 控制类的类名控制器,访问时类名首字母需要小写 -->  
  12.     <bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"></bean>  
  13.     </bean>  

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一位远方的诗人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值