05SpringMvc_映射器SimpleUrlHanderMapping
这篇文章讲的还是映射器,映射器类有两种,前一篇文章讲的是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相关推荐
- Nmap (网络映射器)好东西啊
2019独角兽企业重金招聘Python工程师标准>>> Nmap (网络映射器)是由 Gordon Lyon设计,用来探测计算机网络上的主机和服务的一种安全扫描器.为了绘制网络拓扑 ...
- Windows 7安装MySQL最后一步提示错误“mysql 终结点映射器中没有更多的终结点可用的” 解决方法...
今天在Windows7系统安装MySQL5.5的时候,碰到错误提示"mysql 终结点映射器中没有更多的终结点可用的" 原因如下: 点击确认后,MySQL可以正常使用 转载于:ht ...
- 数据源架构模式之数据映射器
http://lobert.iteye.com/blog/2102312 前面分别介绍了数据源架构模式之表数据入口.数据源架构模式之行和数据入口数据源架构模式之活动记录,相较于这三种数据源架构模式,数 ...
- SpringMVC - 非注解的处理器映射器和适配器
为什么80%的码农都做不了架构师?>>> 一.非注解的处理器映射器 提供的处理器有两个属性.一个是id属性,一个是name属性.分别对应两种不同的映射器. <bean i ...
- mybatis映射器${}和#{}的区别
mybatis映射器${}和#{}的区别 转载于:https://www.cnblogs.com/liyuchen/p/7850185.html
- 管理springmvc组件——前端控制器、控制器映射器和适配器、视图解析器、文件上传的、拦截器||消息转化
管理springmvc组件 概述 在使用springmvc时要配置哪些东西 前端控制器 控制器映射器和适配器 映射器 Map<Set<String>,Object> Set& ...
- mybatis的mapper.xml文件中含有中文注释时运行出错,mybatis配置优化和别名优化 mybatis配置之映射器说明
记录一个发现的小问题,刚刚在UserMapper.xml文件中有一段中文注释掉的内容: <!-- <resultMap id="Usermap" type=" ...
- VTK:标签放置映射器用法实战
VTK:标签放置映射器用法实战 程序输出 程序完整源代码 程序输出 程序完整源代码 #include <vtkActor.h> #include <vtkActor2D.h> ...
- VTK:标记数据映射器用法实战
VTK:标记数据映射器用法实战 程序输出 程序完整源代码 程序输出 程序完整源代码 #include <vtkActor.h> #include <vtkActor2D.h> ...
最新文章
- 腾讯AI开源框架Angel 3.0重磅发布:超50万行代码,支持3种算法,打造全栈机器学习平台...
- 冬季会增加某些疾病的发病风险吗?
- C#——《C#语言程序设计》实验报告——Windows桌面编程
- 反射获取空参数构造方法并运行
- 将Gatling集成到Gradle构建中–了解SourceSet和配置
- VC实现对话框上信息的显示
- bzoj1257: [CQOI2007]余数之和sum
- Pytesseract-windows安装及初步使用
- python表情识别程序_python 实现表情识别
- 移动通信-抗衰落技术
- layout中蛇形线和差分线的使用
- 求会java的大佬救一下场,领导让研究一个应用信息导出工具的代码实现原理,我之前没系统学过java,来个会的大佬帮忙解释下哈,跪谢...这个如果只是单纯实现抓取包名,应用名称的话代码可以怎么精简呀?
- mac上chrome插件安装
- Markdown 数学公式大帅了
- 辨识模型ARMA、ARMAX、ARIMA、ARIMAX
- adb怎么连接到android模拟器,4 adb连接到手机/模拟器
- python编辑程序模型_用Python的SimPy库简化复杂的编程模型的介绍
- 【git】 Please tell me who you are解决方法
- 【detectron2】detectron2在ubuntu16.04系统下安装报错问题
- 苹果手机应用分身_G胖串流应用上架App Store,苹果手机能玩电脑游戏了
热门文章
- python多核cpu_Python中的多核CPU共享数据之协程详解
- python语言指令大全_Python语言----linux常用命令(14)
- 若依集成aj-captcha实现滑块验证码(单体版)
- Windows10配置maven环境变量(图文教程)
- JS模块化规范对比以及在Node.js的实现
- DQL 学习2 -- DQL声明
- Extjs TreeNode的图标元素。 (节点图标, expand的加减号)
- vbs调用c++dll_COM编程攻略(八 动态调用与IDispatch接口)
- oracle userenv(sid),ORACLE USERENV函数
- Oracle 查找并删除表中的重复记录