1.对请求URI的命名空间的定义

  @RequestMapping的value属性用于定义所匹配请求的URI。但对于注解在方法上和注解在类上,

  其value 属性 所指定的URI,意义是不同的

  

  一个@Controller 所注解的类中,可以定义多个处理器方法。当然,不同的处理器方法 所匹配的 URI 是不同的。

  这些不同的 URI 被指定在注解于方法之上的@RequestMapping 的 value 属性中。

  但若这些请求具有相同的 URI 部分,则这些相同的 URI,可以被抽取到注解在 类之上的@RequestMapping 的 value 属性中。

  此时的这个 URI 称为命名空间。换个角度说,要访问处理器的指定方法,必须要在方法指定 URI 之前加上处理器类前定 义的命名空间。

  1. @Controller //表示当前类 是处理器
  2. @RequestMapping("/test") //@RequestMapping注解一个类,可以将抽取出 方法中 相同的 uri,作为 这个处理器的 命名空间
  3. //要 访问处理器的 指定方法,必须要在指定方法的URI 之前 加上命名空间
  4. public class MyController {
  5. @RequestMapping(value={"/hello.do","/helloworld.do"})
  6. public ModelAndView method1(HttpServletRequest request,
  7. HttpServletResponse response) {
  8. ModelAndView mv = new ModelAndView();
  9. mv.addObject("message", "Hello method1!");
  10. mv.setViewName("/WEB-INF/jsp/hello.jsp");
  11. return mv;
  12. }

2.请求URI中通配符的作用

  a)资源名称中使用通配符

    在请求的资源名称中使用通配符,表示请求的资源名称中只要包含指定的字符即可完成匹配

    例如,下面的写法中/some*.do 表示的意思是,只要请求的资源名称以 some 开头即可;

    /*other.do 表示的意思是,只要请求的资源名称以 other 结尾即可。

  b)资源路径中使用通配符

    在资源路径中使用通配符,有两种用法:路径级数的精确匹配、路径级数的可变匹配  

    /xxx/*/show.do:表示在 show.do 的资源名称前面,只能有两级路径,

    第一级必须是/xxx,而 第二级随意。这种称为路径级数的精确匹配。

    /xxx/**/show.do:表示在 show.do 的资源名称前面,必须以/xxx 路径开头,

    而其它级的路径 是否包含,若包含又包含几级,各级又叫什么名称,均随意。这种称为路径级数的可变匹配。

3.对请求提交方式的定义(GET/POST)

  对于@RequestMapping,其中有一个属性method,用于对被注解方法所处理请求的进行限制

  即只有满足该method属性指定的提交方式的请求,才会执行该注解方法

  Method 属性取值为RequestMethod 枚举常量。常用的为RequestMethod.GET、RequestMethod.POST

  1. @RequestMapping(value="/hello*.do",method=RequestMethod.POST)

4.对请求中携带参数的定义

  @RequestMapping中params属性中定义了请求中必须携带的参数的要求

  @RequestMapping(value=”/xxx.do”, params={“name”,”age”}) :要求请求中必须携带请求 参数 name 与 age

  @RequestMapping(value=”/xxx.do”, params={“!name”,”age”}) :要求请求中必须携带请求 参数 age,但必须不能携带参数 name

  @RequestMapping(value=”/xxx.do”, params={“name=zs”,”ag=23”})  :

   要求请求中必须携带请求参数 name,且其值必须为 zs;必须携带参数 age,其其值必须为 23

  @RequestMapping(value=”/xxx.do”, params=“name!=zs”)  :要求请求中必须携带请求参数 name,且其值必须不能为 zs

9.SpringMVC注解式开发-处理器的请求映射规则的定义的更多相关文章

  1. 《SpringMVC从入门到放肆》十一、SpringMVC注解式开发处理器方法返回值

    上两篇我们对处理器方法的参数进行了分别讲解,今天来学习处理器方法的返回值. 一.返回ModelAndView 若处理器方法处理完后,需要跳转到其它资源,且又要在跳转资源之间传递数据,此时处理器方法返回 ...

  2. 11.SpringMVC注解式开发-处理器方法的返回值

    处理器方法的返回值 使用@Controller 注解的处理器的处理器方法,其返回值常用的有四种类型 1.ModelAndView 2.String 3.void 4.自定义类型对象 1.返回Model ...

  3. 10.SpringMVC注解式开发-处理器方法的参数

    1.逐个参数接收 只要保证请求参数名与该请求处理方法的参数名相同即可 // 请求参数名 与该处理器中的请求方法的参数名相同 ,即可接收前台传递过来的参数 public ModelAndView met ...

  4. SpringMVC注解式开发之接收请求参数

    逐个接收(涉及注解@RequestParam) index.jsp的name必须和后端的名字一致,第一种才可以实现. 以对象形式整合接收 域属性参数的接收 数组或集合参数的接收 restfull风格传 ...

  5. springmvc 注解式开发 处理器方法的返回值

    1.返回void -Ajax请求 后台: 前台: 返回object中的数值型: 返回object中的字符串型: 返回object中的自定义类型对象: 返回object中的list: 返回object中 ...

  6. SpringMVC 注解式开发

    SpringMVC的注解式开发是指,处理器是基于注解的类的开发.对于每一个定义的处理器,无需再配置文件中逐个注册,只需在代码中通过对类与方法的注解,便可完成注册.即注解替换是配置文件中对于处理器的注册 ...

  7. 《SpringMVC从入门到放肆》八、SpringMVC注解式开发(基本配置)

    上一篇我们结束了配置式开发,配置式开发目前在企业中用的并不是很多,大部分企业都在使用注解式开发,所以今天我们就来学习注解式开发.所谓SpringMVC注解式开发是指,处理器是基于注解的类的开发方式.对 ...

  8. 3.2.3 SpringMVC注解式开发

    SpringMVC注解式开发 1. 搭建环境 (1) 后端控制器无需实现接口 , 添加相应注解 Controller类添加注解 @Controller //该注解表将当前类交给spring容器管理 @ ...

  9. 《SpringMVC从入门到放肆》九、SpringMVC注解式开发(简单参数接收)

    上一篇我们学习了注解式开发的配置方式并写了一个小Demo跑起来.今天我们来学习注解开发的参数接收.处理器方法中的常用参数有五类,这些参数会在系统调用时由系统自动赋值,即程序员可以在方法中直接使用.具体 ...

随机推荐

  1. features its own

    Gulp.js features its own built-in watch() method - no external plugin required ---- However, the Arn ...

  2. 002-多线程-JUC集合-List-CopyOnWriteArrayList

    一.概述 CopyOnWriteArrayList是Java并发包中提供的一个并发容器,它是个线程安全且读操作无锁的ArrayList,写操作则通过创建底层数组的新副本来实现,是一种读写分离的并发策略 ...

  3. mongodb and 和 or 查询

    db.getCollection('gxyWarnEntity').find({ "schoolId" : "f11c8ea12f457dbc19c768a8bb6357 ...

  4. 通过举例了解java中的流

    Java流结构介绍: Java所有的流类位于java.io包中,都分别继承字以下四种抽象流类型.   字节流 字符流 输入流 InputStream Reader 输出流 OutputStream W ...

  5. unity三维地球模型生成

    准备一张贴图   创建材质球 球面坐标系转直角坐标系 x=rsinθcosφ. y=rsinθsinφ. z=rcosθ. 效果如下   脚本如下 using System.Collections; ...

  6. 联想拯救者电脑装Ubuntu没有WIFI

    最近给联想电脑装Ubuntu系统,但是装完之后总是无法启动WIFI,而宽带上网却可以,给出一个解决办法,但是该办法应该只适合联想电脑,其他电脑请自测! 打开终端,输入下面指令: sudo modpro ...

  7. matlab.坑01

    1.数据的行列 位置 1.1.c++中二维数组与二维mwarray数据格式之间的相互转换 - weixin_38723958的博客 - CSDN博客.html(https://blog.csdn.ne ...

  8. SpringBoot异步编程

    异步调用:当我们执行一个方法时,假如这个方法中有多个耗时的任务需要同时去做,而且又不着急等待这个结果时可以让客户端立即返回然后,后台慢慢去计算任务.当然你也可以选择等这些任务都执行完了,再返回给客户端 ...

  9. [Agc029B]Powers of two_贪心_树形dp

    Powers of two 题目链接:https://atcoder.jp/contests/agc029/tasks/agc029_b 数据范围:略. 题解: 可能一点思路都没有. 但是我们发现:如 ...

  10. 1.3.3 并发容器类MAP/LIST/SET/QUEUE

    HashMap 下标计算方法:hashCode & (length-1) ,&按位与操作,二进制相同位都是1,该位才为1 JDK1.7与JDK1.8中HashMap区别: JDK1.8 ...