spring mvc -@RequestMapping注解详解
https://www.cnblogs.com/caoyc/p/5635173.html
@RequestMapping参数说明:
value:定义处理方法的请求的URL地址(重点);
method:定义处理方法的http method类型,如GEt、POST等。(重点)
params:定义请求的URL中必须包含的参数,或者不包含某些参数。(了解)
headers:定义请求中Request Headers必须包含的参数,或者不包含某些参数。(了解)
@RequestMapping的用法:
@RequestMapping有两种标注方式,一种是标注在类级别上,一种是标注在方法级别上。标注在方法上时,value表示访问该方法的URL地址。标注在类上时,value相当于一个命名空间,即访问该Controller下的任意方法都需要带上这个命名空间。例如:
@Controller @RequestMapping("/example") public class ExampleController {@RequestMappingpublic String execute(){return "example_page";}@RequestMapping("/todo")public String doSomething(){return "example_todo_page";}}
View Code
1、/example.action:执行的是excute()方法。excute()方法的@RequestMapping注解缺省value值,这种情况下,当访问命名空间时默认执行的是这个方法。方法级别上的@RequestMapping标注是必须的,否则方法无法被正确访问。
2、/example/todo.action执行的是doSomething()方法。类级别上的@RequestMapping标注不是必须的,在不写的情况下,方法上定义的URL都是绝对地址,否则,方法上定义的URL都是相对于它所在的Controller的。
@RequestMapping(method):指定页面请求方式
@RequestMapping(value = "/register", method = RequestMethod.GET) public String register(){return "example_register_page"; }
register
method的值一旦指定,那么,处理方法就只对指定的http method类型的请求进行处理。这里方法/register只能使用get请求,使用post请求无法访问。
@RequestMapping(value = "/register", method = RequestMethod.GET) public String register1(){return "example_register_get_page"; }@RequestMapping(value = "/register", method = RequestMethod.POST) public String register2(){return "example_register_post_page"; }
View Code
可以为多个方法映射相同的 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 值相匹配的参数的请求,处理方法才会被调用。
@RequestMapping(value = "/find", params = "target") public String find1(){return "example_find1_page"; }@RequestMapping(value = "/find", params = "!target") public String find2(){return "example_find2_page"; }@RequestMapping(value = "/search", params = "target=product") public String search1(){return "example_search1_page"; }@RequestMapping(value = "/search", params = "target!=product") public String search2(){return "example_search2_page"; }
View Code
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 值相匹配的参数,处理方法才会被调用。
@RequestMapping(value = "/specify", headers = "accept=text/*") public String specify(){return "example_specify_page"; }
View Code
请求的 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/…/… |
转载于:https://www.cnblogs.com/arrows/p/10521588.html
spring mvc -@RequestMapping注解详解相关推荐
- Spring MVC @RequestMapping注解详解
@RequestMapping 参数说明 value:定义处理方法的请求的 URL 地址.(重点) method:定义处理方法的 http method 类型,如 GET.POST 等.(重点) pa ...
- spring mvc 常用注解详解
@Controller 在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model , ...
- java处理请求的流程_Java Spring mvc请求处理流程详解
Spring mvc请求处理流程详解 前言 spring mvc框架相信很多人都很熟悉了,关于这方面的资料也是一搜一大把.但是感觉讲的都不是很细致,让很多初学者都云里雾里的.本人也是这样,之前研究过, ...
- Spring Cache常用注解详解
Spring Cache常用注解详解 @EnableCaching 开启Spring Cache框架支持.解析对应的注解,实现缓存读写访问 @CacheConfig 缓存配置,可以配置当前类型中所用缓 ...
- 【Spring MVC学习】详解spring mvc 3.0常用注解
Spring mvc的注解功能 1.@Controller--表示控制器 举例: @Controller public class SoftCreateController extendsSimple ...
- Spring MVC中@Controller和@RequestMapping注解详解
在<第一个Spring MVC应用>教程中创建了两个传统风格的控制器,它们是实现 Controller 接口的类.传统风格的控制器不仅需要在配置文件中部署映映射,而且只能编写一个处理方法, ...
- Spring MVC测试框架详解——服务端测试
随着RESTful Web Service的流行,测试对外的Service是否满足期望也变的必要的.从Spring 3.2开始Spring了Spring Web测试框架,如果版本低于3.2,请使用sp ...
- Spring定时任务 - @Schedule注解详解
一.@Schedule注解一览 @Scheduled注解共有8个属性(其中有3组只是不同类型的相同配置)和一个常量CRON_DISABLED,源码如下: /*** 标记要调度的方法的注释. 必须准确指 ...
- SpringMVC RequestMapping注解详解
2019独角兽企业重金招聘Python工程师标准>>> @RequestMapping注解的作用是对用户的请求映射到指定的控制器或方法,所以该注解可以用来修饰类和方法,在Reques ...
最新文章
- HTML5 学习笔记(一)- video
- python3 限定方法参数 返回值 变量 类型
- Web.config配置访问权限
- magento php 所需模块,Magento 博客
- NFS文件系统简介及原理
- c# 深拷贝各种实现方式
- [转] java.nio.ByteBuffer中flip、rewind、clear方法的区别
- Django使用python-docx-template,并根据模板来生成有数据的word文档
- ansys里面自带chemkin_Chemkin-Pro: Chemistry Effects Predicting Simulation Software | Ansys
- 用户授信额度管理中,会运用到哪些策略?
- 源码解读Linux的limits.conf文件
- 内存中的堆和栈(heap stack)
- 域名解析到指定端口_南京课工场IT培训:搭建nginx虚拟主机——基于域名、端口和IP...
- python第一周练习 货币转换
- visio中绘制空间坐标系
- Anaconda2020安装与使用
- Bootstrap(三) 网格系统
- 野火FPGA-状态机
- html 5 时代来了 视频播放还用falsh 还要找播放器 你out 了
- [Vue][面试]谈谈你对MVC、MVP和MVVM的理解
热门文章
- Enterprise Library之错误处理部分
- 一级计算机考试题库25套答案,全国计算机等级考试一级试题及答案(25套)..doc
- 古剑奇谭二服务器维护,《古剑奇谭二》10月4日例行维护更新公告
- 基于java的InputStream.read(byte[] b,int off,int len)算法学习!
- python内置函数sorted(x)的作用是_Python内置filter与sorted函数
- php tp3.0计算每天的订单,TP5.1结合taskphp3.0定时任务
- java 循环展开_Java在Debug的时候,有些变量能无限展开(循环了)?
- 2021年春季学期-信号与系统-第十二次作业参考答案-第一小题
- 2021春季学期-创新设计与实践-Lesson4
- 2021春季学期-创新设计与实践-Lesson2