• springmvc基础篇—掌握三种处理器


    随着springmvc的广泛使用,关于它的很多实用有效的功能应该更多的被大家所熟知,下面就介绍一下springmvc的三种处理器:

    一、BeanName处理器(默认)

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
        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.2.xsd">
        <!-- BeamName处理器映射 第一种默认的,可以不写-->
        <bean id="beanNameUrlHandlerMapping" class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" >
            <!-- 排序使用,如果出现冲突以哪个控制器为准,值越小排序越靠前 -->
            <property name="order" value="0"></property>
        </bean>
        <!-- 控制器 -->
        <bean name="/home.action" class="cn.cfs.springmvc.controller.HomeController">
        </bean>
        <!-- 内部资源视图解析器 prefix + logicName + suffix -->
        <bean name="InternalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name="prefix" value="/WEB-INF/jsps/"></property>
            <property name="suffix" value=".jsp"></property>
        </bean>
    </beans>

    注:这个处理器是springmvc默认的处理器,通过bean的name属性来控制访问的请求路径对应的具体是哪个action类(控制层的类,Controller类)。这里值得注意的是3.0以前在name里不用写/反斜杠的,3.0版本以后是需要加上的

    二、简单的处理器(用于多个请求路径绑定同一个Controller)

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
        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.2.xsd">
        <!-- 简单处理器映射  第二种,简单的配置,不同的路径请求对应同一个action的情况-->
         <bean id="simpleUrlHandlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
            <property name="mappings">
                <props>
                    <prop key="/a.action">test</prop>
                    <prop key="/b.action">test</prop>
                    <prop key="/c.action">test</prop>
                </props>
            </property>
            <!-- 排序使用,如果出现冲突以哪个控制器为准 -->
            <property name="order" value="0"></property>
        </bean> 
        <!-- 控制器 -->
        <bean id="test" name="/home.action" class="cn.cfs.springmvc.controller.HomeController">
        </bean>
        <!-- 内部资源视图解析器 prefix + logicName + suffix -->
        <bean name="InternalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name="prefix" value="/WEB-INF/jsps/"></property>
            <property name="suffix" value=".jsp"></property>
        </bean>
    </beans>

    注:这个处理器是通过prop里的key确定具体的请求跳转路径,后面的值对应控制器的id

    三、className(类名)处理器

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
        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.2.xsd">
        <!-- className 处理器映射  第三种根据控制器的类名去自动映射,访问时类名首字母需要小写 ,如果类命名规范,例如:HomeController 可省略Controller,直接敲home.action即可访问-->
        <bean id="controllerClassNameHandlerMapping" class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping">
            <!-- 排序使用,如果出现冲突以哪个控制器为准 -->
            <property name="order" value="2"></property>
        </bean>
        
        <!-- 控制器 -->
        <bean class="cn.cfs.springmvc.controller.HomeController">
        </bean>
        <!-- 内部资源视图解析器 prefix + logicName + suffix -->
        <bean name="InternalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name="prefix" value="/WEB-INF/jsps/"></property>
            <property name="suffix" value=".jsp"></property>
        </bean>
    </beans>

    注:这个处理器是通过你自己定义的控制器类的名称来解析做映射的,一定要注意访问类名时字母要小写,如果是类名起的很规范,例如HomeController那么后面的Controller可以省略,直接用home.action去访问即可,注意我这里web.xml中配置的DispatcherServlet的mapping拦截的是后缀为.action的请求所以访问是home.action,如果配置的是/斜杠则不需带.action

  • 相关阅读:
    Spring读书笔记
    window.open参数详解
    在spring security3上实现验证码
    Struts2.1 标签详细说明
    总结一下log4j
    【转】hibernate映射oracle自增长
    Java中四舍五入保留七位小数
    求三个整数的最小公倍数
    boxshadow 曲线阴影和翘边阴影
    <div> <p> <span>的用法和区别
  • 原文地址:https://www.cnblogs.com/mycifeng/p/6274113.html
Copyright © 2020-2023  润新知