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

时间: 2024-10-04 09:09:38

springmvc基础篇—掌握三种处理器的相关文章

SpringMVC的三种处理器适配器

SpringMVC具有三种处理器适配器,他们分别是BeanNameUrlHandlerMapping.SimpleControllerHandlerAdapter.ControllerClassNameHandlerMapping,可以分别使用这三种处理器适配器进行获取Controller. 程序结构如下: 首先,来介绍BeanNameUrlHandlerMapping映射,如下所示,这种映射使用Bean的name来访问控制器,它根据类名(Mycontroller)类名.do来访问,类名首字母小

【SpringMVC笔记】第三课 处理器映射器+处理器适配器

第二课的例子中,在springmvc.xml中配置使用了第一种处理器映射器和处理器适配器,如下所示. <!-- 配置第一种处理器映射器 BeanNameUrlHandlerMapping --> <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean> <!-- 配置第一种处理器适配器 SimpleControllerHandl

Android自己定义View基础篇(三)之SwitchButton开关

自己定义View基础篇(二) 自己定义View基础篇(一) 自己定义View原理 我在解说之前,先来看看效果图,有图有真相:(转换gif图片效果太差) 那来看看真实图片: 假设你要更改样式,请改动例如以下图片: switch_ball switch_bg switch_black switch_bottom 我在这里就不反复解说View与ViewGroup的关系,View的绘制流程.假设你对自己定义View还不甚了解.请看上面几篇文章. 用法 xml文件: <com.github.ws.swit

iOS开发基础之用三种不同方式创建Table View应用

在iOS中,有一种最常见的控件就是Table View,你也可以理解为是一个列表.在安卓中就是一个ListView.常常用在新闻客户端,邮箱,备忘录等应用上.但是在iOS实现这个列表项比Android更为简单.下面将会使用三种方法来实现一个Table View的界面. (1)模板Master-Detail Application 这是在创建一个iOS应用的时候可以选择的模板,里面已经非常好的集成了Table View控件,已经可以实现增加一项,删除一项,信息显示的功能了.我们可以在这个基础上进行

Python之基础篇(三)

基础篇之三: 一,数据类型之set. 总结:set无序,不重复. 1,创建set: s = {1,2,3} print(s,type(s)) list1 = [1,2,3] s1=(list1) print(s1,type(list1)) s2 = set() print(s2,type(s2)) {1, 2, 3} <class 'set'> [1, 2, 3] <class 'list'> set() <class 'set'> 2,set方法 1,添加元素:(s.

CSS【03】:CSS 基础选择器与三种引入方式

基础选择器 选择器:css 选择 html 标签的一个工具,是将 css 与 html 建立起联系,那么 css 就可以控制 html 样式 选择器其实就是给 html 标签起名字 标签选择器 作用:根据指定的标签名称,在当前界面中找到所有该名称的标签,然后设置属性 格式: 标签名称 { 属性: 值; } 注意点: 标签选择器选中的是当前界面中所有的标签,而不能单独选中某一个标签 标签选择器无论标签藏得多深都能选中 id选择器 作用:根据指定的 id 名称找到对应的标签,然后设置属性 格式: #

鸟哥的LINUX私房菜基础篇第三版 阅读笔记 三 Linux磁盘与文件系统管理

一.认识EXT2文件系统: a.硬盘的组成:转动小马达+存储的磁盘+读写的机械臂 b.磁盘的一些概念 扇区为最小的物理储存单位,每个扇区为512B 将扇区组成一个圆,就是磁柱,磁柱是最小的分割单位 第一扇区最重要,a.主要开机区及分割表,其中MBR占有446B,而partition table 则占有64B c.inode block superblock 三个数据的意义 inode:存放文件的属性,权限,一个档案占用一个inode,同时记录次档案的数据所在的block号 block:实际存放的

springMVC基础篇

 对于一个不懂技术的人来说springMVC是什么呢?有人会说:"春天里的MVC"这也许就是春天里的几个字母,不错在我没有接触java框架的时候留给我的记忆就是这样的.那么现在接触到了就让我们来好好讨论一下springMVC到底是什么吧? 一.是什么? 百度百科上这样解释:Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring WebFlow里面.Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块.使用 Spring 可插入的 M

Python学习之旅 —— 基础篇(三)set集合、函数、文件操作

本篇要点: 数据类型:set集合 函数 文件操作 三元运算(三目运算)和lambda表达式 一.set集合 python中数据类型的一种,是无序并且不重复的数据集合.set源码: class set(object): """ 创建set集合 set() -> new empty set object 把可迭代的数据类型转换成元组 set(iterable) -> new set object Build an unordered collection of uni