@RequestMapping 参数说明

  value:定义处理方法的请求的 URL 地址。(重点)

  method:定义处理方法的 http method 类型,如 GET、POST 等。(重点)

  params:定义请求的 URL 中必须包含的参数。或者不包含某些参数。(了解)

  headers:定义请求中 Request Headers 必须包含的参数。或者不包含某些参数。(了解)

@RequestMapping 的用法

  @RequestMapping 有两种标注方式,一种是标注在类级别上,一种是标注在方法级别上。标注在方法上时,value 表示访问该方法的 URL 地址。标注在类上时,value 相当于一个命名空间,即访问该 Controller 下的任意方法都需要带上这个命名空间。例如:

Java代码

 1 @Controller
 2 @RequestMapping("/example")
 3 public class ExampleController {
 4
 5     @RequestMapping
 6     public String execute(){
 7         return "example_page";
 8     }
 9
10     @RequestMapping("/todo")
11     public String doSomething(){
12         return "example_todo_page";
13     }
14
15 }

  1:/example.action:执行的是 execute() 方法。execute() 方法的 @RequestMapping 注解缺省 value 值,在这种情况下,当访问命名空间时默认执行的是这个方法。方法级别上的 @RequestMapping 标注是必须的,否则方法无法被正确访问。

  2:/example/todo.action执行的是 doSomething() 方法。类级别上的 @RequestMapping 标注不是必须的,在不写的情况下,方法上定义的 URL 都是绝对地址,否则,方法上定义的 URL 都是相对于它所在的 Controller 的。

@RequestMapping(method):指定页面请求方式

1 @RequestMapping(value = "/register", method = RequestMethod.GET)
2 public String register(){
3     return "example_register_page";
4 }

  method 的值一旦指定,那么,处理方法就只对指定的 http method 类型的请求进行处理。 这里方法/register只能使用get请求,使用post请求无法访问

1 @RequestMapping(value = "/register", method = RequestMethod.GET)
2 public String register1(){
3     return "example_register_get_page";
4 }
5
6 @RequestMapping(value = "/register", method = RequestMethod.POST)
7 public String register2(){
8     return "example_register_post_page";
9 }

  可以为多个方法映射相同的 URI,不同的 http method 类型,Spring MVC 根据请求的 method 类型是可以区分开这些方法的。当 /example/register.action 是以 GET 的方式提交的时候,Spring MVC 调用 register1() 来处理请求;若是以 POST 的方式提交,则调 register2() 来处理提交的请求。

  method 若是缺省没指定,并不是说它默认只处理 GET 方式的请求,而是它可以处理任何方式的 http method 类型的请求。指定 method 是为了细化映射 ( 缩小处理方法的映射范围 ),在 method 没有指定的情况下,它的映射范围是最大的。

@RequestMapping(params)

  与 method 相类似,作用是为了细化映射。只有当 URL 中包含与 params 值相匹配的参数的请求,处理方法才会被调用。

 1 @RequestMapping(value = "/find", params = "target")
 2 public String find1(){
 3     return "example_find1_page";
 4 }
 5
 6 @RequestMapping(value = "/find", params = "!target")
 7 public String find2(){
 8     return "example_find2_page";
 9 }
10
11 @RequestMapping(value = "/search", params = "target=product")
12 public String search1(){
13     return "example_search1_page";
14 }
15
16 @RequestMapping(value = "/search", params = "target!=product")
17 public String search2(){
18     return "example_search2_page";
19 }

  find1():请求的 URL 中必须要有 target 参数,才能够到达此方法。如 /example/find.action?target 或 /example/find.action?target=x 等

  find2():请求的 URL 中必须不能有 target 参数,才能够到达此方法。如 /example/find.action 或 /example/find.action?q=x 等

  search1():请求的 URL 中必须要有 target=product 参数,才能够到达此方法。如 /example/search.action?target=product 等

  search2():请求的 URL 中必须不能有 target=product 参数,才能够到达此方法。如 /example/search.action?target=article 等

@RequestMapping(headers)

  headers 的作用也是用于细化映射。只有当请求的 Request Headers 中包含与 heanders 值相匹配的参数,处理方法才会被调用。

1 @RequestMapping(value = "/specify", headers = "accept=text/*")
2 public String specify(){
3     return "example_specify_page";
4 }

  请求的 Request Headers 中 Accept 的值必须匹配 text/* ( 如 text/html ),方法才会被调用。

@RequestMapping支持Ant风格的通配符

通配符 说明 示例
? 匹配一个任意字符 /a/?b 可以匹配/a/ab;/a/cb。但不能匹配/a/acb之类
* 匹配任意长度的字符 /a/ *b可以匹配/a/cb;/a/acb。但不能匹配/a/cb/vb
** 匹配多层路径 可以匹配/a/ab;/a/acb;/a/ab/abc/…/…

Spring MVC @RequestMapping注解详解相关推荐

  1. spring mvc -@RequestMapping注解详解

    https://www.cnblogs.com/caoyc/p/5635173.html @RequestMapping参数说明: value:定义处理方法的请求的URL地址(重点): method: ...

  2. spring mvc 常用注解详解

    @Controller 在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model , ...

  3. java处理请求的流程_Java Spring mvc请求处理流程详解

    Spring mvc请求处理流程详解 前言 spring mvc框架相信很多人都很熟悉了,关于这方面的资料也是一搜一大把.但是感觉讲的都不是很细致,让很多初学者都云里雾里的.本人也是这样,之前研究过, ...

  4. Spring Cache常用注解详解

    Spring Cache常用注解详解 @EnableCaching 开启Spring Cache框架支持.解析对应的注解,实现缓存读写访问 @CacheConfig 缓存配置,可以配置当前类型中所用缓 ...

  5. 【Spring MVC学习】详解spring mvc 3.0常用注解

    Spring mvc的注解功能 1.@Controller--表示控制器 举例: @Controller public class SoftCreateController extendsSimple ...

  6. Spring MVC中@Controller和@RequestMapping注解详解

    在<第一个Spring MVC应用>教程中创建了两个传统风格的控制器,它们是实现 Controller 接口的类.传统风格的控制器不仅需要在配置文件中部署映映射,而且只能编写一个处理方法, ...

  7. Spring MVC测试框架详解——服务端测试

    随着RESTful Web Service的流行,测试对外的Service是否满足期望也变的必要的.从Spring 3.2开始Spring了Spring Web测试框架,如果版本低于3.2,请使用sp ...

  8. Spring定时任务 - @Schedule注解详解

    一.@Schedule注解一览 @Scheduled注解共有8个属性(其中有3组只是不同类型的相同配置)和一个常量CRON_DISABLED,源码如下: /*** 标记要调度的方法的注释. 必须准确指 ...

  9. SpringMVC RequestMapping注解详解

    2019独角兽企业重金招聘Python工程师标准>>> @RequestMapping注解的作用是对用户的请求映射到指定的控制器或方法,所以该注解可以用来修饰类和方法,在Reques ...

最新文章

  1. Web APi之控制器选择Action方法过程(九)
  2. python 顺序栈及基本操作
  3. 直播预告丨行业大咖带你找到游戏企业经营新升级的正确打开方式
  4. HDU - 6333 Problem B. Harvest of Apples(莫队变形+思维+组合数学,好题)
  5. N 年沉淀,腾讯这套系统终于开源!
  6. Python(八) 函数、模块
  7. 程序员笔记|常见的Spring异常处理
  8. Unity教程之再谈Unity中的优化技术
  9. Eclipse设置护眼背景
  10. 处理非window设置为window的Owner
  11. kali linux工具词典,Kali字典神器—Crunch
  12. linux的定时器的使用,linux定时器如何使用方法
  13. 小学计算机英语,小学英语电脑版
  14. mysql和sqline的异同_mysql的那点事儿,你知道吗
  15. 1000x计算机 案例解析,索尼WI-1000X耳机连接win7电脑的步骤讲解
  16. sdlc 瀑布式 生命周期_SDLC指南–软件开发生命周期的阶段和方法
  17. 我们会是最后一批用五笔的中国人吗?
  18. python3 字符和数字(ASC码)转换
  19. Centos Linux 单机安装 HBase 、使用 HBase
  20. matlab画渐变色三维柱状图

热门文章

  1. ESP8266--学习笔记(八)串口源码分析
  2. ST17H26 tea加密java版本
  3. ASC0106硬件连接注意事项
  4. 2 Docker安装及使用
  5. [小技巧]PicGo、Gitee和Typora构建在线图床
  6. 【django】配置redis数据库【4】
  7. python——字符串常用方法
  8. python—类和对象之浅拷贝和深拷贝详细讲解
  9. 2-Authentication Framework Chain of Trust
  10. RabbitMQ原理RabbitMQ各组件作用RabbitMQ使用场景