这篇文章讲的还是映射器,映射器类有两种,前一篇文章讲的是BeanNameUrlHanderMapping映射器类。今天讲的是SimpleUrlHanderMapping映射器类。

这两个映射器类有什么区别呢?

画个图说明一下:

我们知道映射器类的主要功能是根据url的请求得到相应的Action实例。BeanNameUrlHandlerMapping和SimpleUrHandlerMapping的区别我们通过案例来说明:

我们要实现的功能是:请求(删除用户,修改用户,删除用户,增加用户)都对应到同一个UserAction。

BeanNameUrlHandlerMapping的做法是:

案例结构如下:

UerAtion代码如下:

/*** Create by 沈晓权* Create on 2016年8月6日下午11:20:04*/
package com.guigu.shen.Action2;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;public class UserAction implements Controller {@Overridepublic ModelAndView handleRequest(HttpServletRequest request,HttpServletResponse response) throws Exception {ModelAndView modelAndView=new ModelAndView();modelAndView.addObject("message", "增加了一个用户");modelAndView.setViewName("success");return modelAndView;}}

springMvc_002.xml代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.springframework.org/schema/tx"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-3.0.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx-3.0.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"
><!-- 控制器(程序员)(必须配置) 

BeanNameUrlHandlerMapping的做法是这里必须配四个。

-->
<bean name="/adduser.action" class="com.guigu.shen.Action2.UserAction"></bean>
<bean name="/deleteuser.action" class="com.guigu.shen.Action2.UserAction"></bean>
<bean name="/searchuser.action" class="com.guigu.shen.Action2.UserAction"></bean>
<bean name="/updateuser.action" class="com.guigu.shen.Action2.UserAction"></bean><!-- 映射器 -->
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>  <bean  class="org.springframework.web.servlet.view.InternalResourceViewResolver"><!-- 配置路径前缀 --><property name="prefix" value="/jsp/"></property><!-- 配置路径后缀 --><property name="suffix" value=".jsp"></property><!-- 上面的配置方法其实就是前缀+视图逻辑名+后缀=真实路径 --></bean>
</beans>

index.xml代码:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><base href="<%=basePath%>"><title>My JSP 'index.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0">    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body>This is my JSP page. <br><a href="${pageContext.request.contextPath}/adduser.action">增加用户</a><a href="${pageContext.request.contextPath}/updateuser.action">修改用户</a><a href="${pageContext.request.contextPath}/searchuser.action">查询用户</a><a href="${pageContext.request.contextPath}/deleteuser.action">删除用户</a></body>
</html>

运行:输入http://127.0.0.1:8080/SpringMvc_10day_self/

结果都是对的。

但是想上面一样,为了让多个请求对应同一个Action处理类,写了四个bean,太麻烦了,所以换种映射器类,采用SimpleUrlHanderMapping来做:

如下l

除了修改springmvc_002.xml之外。其他都不用修改。

springmvc_002.xml修改之后的代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.springframework.org/schema/tx"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-3.0.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx-3.0.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"
><!-- 控制器(程序员)(必须配置) --><bean id="userActionID" class="com.guigu.shen.Action2.UserAction"></bean><!-- 映射器 与之前的BeanNameUrlHanderMapping不同这次采用的是SimpleUrlHandlerMapping映射器。-->
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"><property name="mappings"><props><!-- 依次写四个请求。并把之前的   <bean id="userActionID" class="com.guigu.shen.Action2.UserAction"></bean> 的id写入--><prop key="/adduser.action">userActionID</prop><prop key="/deleteuser.action">userActionID</prop><prop key="/searchuser.action">userActionID</prop><prop key="/updateuser.action">userActionID</prop></props></property></bean>  <!-- 如果Action汇总书写的是视图逻辑名称,那么视图解析器就必须配置(解释一下什么是视图逻辑名称:就是类似Struts2中的,"success")如果Action中配置的是视图真实名称,那么视图解析器就可选配置(解释一下什么是视图真实名称,就是"/jsp/success.jsp")--><bean  class="org.springframework.web.servlet.view.InternalResourceViewResolver"><!-- 配置路径前缀 --><property name="prefix" value="/jsp/"></property><!-- 配置路径后缀 --><property name="suffix" value=".jsp"></property><!-- 上面的配置方法其实就是前缀+视图逻辑名+后缀=真实路径 --></bean>
</beans>

05SpringMvc_映射器SimpleUrlHanderMapping相关推荐

  1. Nmap (网络映射器)好东西啊

    2019独角兽企业重金招聘Python工程师标准>>> Nmap  (网络映射器)是由 Gordon Lyon设计,用来探测计算机网络上的主机和服务的一种安全扫描器.为了绘制网络拓扑 ...

  2. Windows 7安装MySQL最后一步提示错误“mysql 终结点映射器中没有更多的终结点可用的” 解决方法...

    今天在Windows7系统安装MySQL5.5的时候,碰到错误提示"mysql 终结点映射器中没有更多的终结点可用的" 原因如下: 点击确认后,MySQL可以正常使用 转载于:ht ...

  3. 数据源架构模式之数据映射器

    http://lobert.iteye.com/blog/2102312 前面分别介绍了数据源架构模式之表数据入口.数据源架构模式之行和数据入口数据源架构模式之活动记录,相较于这三种数据源架构模式,数 ...

  4. SpringMVC - 非注解的处理器映射器和适配器

    为什么80%的码农都做不了架构师?>>>    一.非注解的处理器映射器 提供的处理器有两个属性.一个是id属性,一个是name属性.分别对应两种不同的映射器. <bean i ...

  5. mybatis映射器${}和#{}的区别

    mybatis映射器${}和#{}的区别 转载于:https://www.cnblogs.com/liyuchen/p/7850185.html

  6. 管理springmvc组件——前端控制器、控制器映射器和适配器、视图解析器、文件上传的、拦截器||消息转化

    管理springmvc组件 概述 在使用springmvc时要配置哪些东西 前端控制器 控制器映射器和适配器 映射器  Map<Set<String>,Object> Set& ...

  7. mybatis的mapper.xml文件中含有中文注释时运行出错,mybatis配置优化和别名优化 mybatis配置之映射器说明

    记录一个发现的小问题,刚刚在UserMapper.xml文件中有一段中文注释掉的内容: <!-- <resultMap id="Usermap" type=" ...

  8. VTK:标签放置映射器用法实战

    VTK:标签放置映射器用法实战 程序输出 程序完整源代码 程序输出 程序完整源代码 #include <vtkActor.h> #include <vtkActor2D.h> ...

  9. VTK:标记数据映射器用法实战

    VTK:标记数据映射器用法实战 程序输出 程序完整源代码 程序输出 程序完整源代码 #include <vtkActor.h> #include <vtkActor2D.h> ...

最新文章

  1. 腾讯AI开源框架Angel 3.0重磅发布:超50万行代码,支持3种算法,打造全栈机器学习平台...
  2. 冬季会增加某些疾病的发病风险吗?
  3. C#——《C#语言程序设计》实验报告——Windows桌面编程
  4. 反射获取空参数构造方法并运行
  5. 将Gatling集成到Gradle构建中–了解SourceSet和配置
  6. VC实现对话框上信息的显示
  7. bzoj1257: [CQOI2007]余数之和sum
  8. Pytesseract-windows安装及初步使用
  9. python表情识别程序_python 实现表情识别
  10. 移动通信-抗衰落技术
  11. layout中蛇形线和差分线的使用
  12. 求会java的大佬救一下场,领导让研究一个应用信息导出工具的代码实现原理,我之前没系统学过java,来个会的大佬帮忙解释下哈,跪谢...这个如果只是单纯实现抓取包名,应用名称的话代码可以怎么精简呀?
  13. mac上chrome插件安装
  14. Markdown 数学公式大帅了
  15. 辨识模型ARMA、ARMAX、ARIMA、ARIMAX
  16. adb怎么连接到android模拟器,4 adb连接到手机/模拟器
  17. python编辑程序模型_用Python的SimPy库简化复杂的编程模型的介绍
  18. 【git】 Please tell me who you are解决方法
  19. 【detectron2】detectron2在ubuntu16.04系统下安装报错问题
  20. 苹果手机应用分身_G胖串流应用上架App Store,苹果手机能玩电脑游戏了

热门文章

  1. python多核cpu_Python中的多核CPU共享数据之协程详解
  2. python语言指令大全_Python语言----linux常用命令(14)
  3. 若依集成aj-captcha实现滑块验证码(单体版)
  4. Windows10配置maven环境变量(图文教程)
  5. JS模块化规范对比以及在Node.js的实现
  6. DQL 学习2 -- DQL声明
  7. Extjs TreeNode的图标元素。 (节点图标, expand的加减号)
  8. vbs调用c++dll_COM编程攻略(八 动态调用与IDispatch接口)
  9. oracle userenv(sid),ORACLE USERENV函数
  10. Oracle 查找并删除表中的重复记录