@RequestMapping使用须知
----------------------siwuxie095
@RequestMapping 使用须知
使用 @RequestMapping 注解映射请求路径
即
你可以使用 @RequestMapping 注解来将请求 URL 映射到整个类上
或 某个特定的方法上,即 @RequestMapping 既可以定义在类上,
也可以定义方法上
一般来说,类级别的注解负责将一个特定(或符合某种模式)的请求
路径映射到一个控制器上,同时通过方法级别的注解来细化映射,即
根据特定的 HTTP 请求方法(GET、POST 方法等)、HTTP请求中是
否携带特定参数等条件,将请求映射到匹配的方法上
具体配置方法:
(1)映射单个 URL
@RequestMapping("") 或 @RequestMapping(value="")
(2)映射多个 URL
@RequestMapping({"",""}) 或 @RequestMapping(value={"",""})
路径开头是否加斜杠 / 均可,建议加上,如:@RequestMapping("/hello")
@RequestMapping 一共有五种映射方式:
1、标准 URL 映射
标准 URL 映射是最简单的一种映射,例如:
@RequestMapping("/hello")
或
@RequestMapping({"/hello","/world"})
2、Ant 风格的 URL 映射
Ant 通配符有三种:
|
通配符 |
说明 |
|
? |
匹配任何单字符 |
|
* |
匹配任意数量的字符(含 0 个) |
|
** |
匹配任意数量的目录(含 0 个) |
例如:
(1)@RequestMapping("/?/hello/")
(2)@RequestMapping("/*/hello")
(3)@RequestMapping("/**/hello")
3、占位符 URL 映射
URL 中可以通过一个或多个 {} 占位符映射
例如:@RequestMapping("/user/{userId}/show")
可以通过 @PathVariable("") 注解将占位符中的值绑定到方法参数上

|
/** * 如果 URL 中的 userId 是纯数字,那么使用 @PathVariable * 做绑定时,可以根据自己的需求将方法参数类型设置为 Long、 * Integer、String */ @RequestMapping("/user/{userId}/show") public ModelAndView show(@PathVariable("userId") Long userId) { // 创建 ModelAndView 对象,并设置视图名称 ModelAndView mv = new ModelAndView("show"); // 添加模型数据 mv.addObject("msg", "User ID:" + userId); return mv; } |
注意:@PathVariable("") 不能简写为 @PathVariable。因为在
正常编译时,Java 类反射对象不包含方法的参数名称。如果在编
译时将 Debug 打开(javac -debug=no),方法的参数名称才
会记录到类中,此时才能简写,但不建议简写。
编译时,打开 Debug 的方法:
打开 Eclipse,Project->Properties->Java Compiler,勾选上
Add variable attributes to generated class files … 即可

4、限制请求方法的 URL 映射
在 HTTP 请求中最常用的请求方法是 GET、POST,还有其他的
一些方法,如:DELET、PUT、HEAD 等
限制请求方法,例如:
@RequestMapping(value="/hello", method=RequestMethod.POST)
如需限制多个请求方法,以大括号包围,逗号隔开即可,例如:
method={RequestMethod.GET,RequestMethod.POST}
5、限制请求参数的 URL 映射
限制请求参数来映射 URL,例如:
@RequestMapping(value="/user/show", params="userId")
即 请求中必须带有 userId 参数
参数的限制规则如下:
(1)params="userId" 请求参数中必须包含 userId
(2)params="!userId" 请求参数中不能包含 userId
(3)params="userId!=1" 请求参数中必须包含 userId,但不能为 1
(4)params={"userId","userName"} 必须包含 userId 和 userName 参数
可以通过 @RequestParam("") 注解将请求参数绑定到方法参数上

|
@RequestMapping(value="/user/show",params="userId") public ModelAndView show(@RequestParam("userId") Long userId) { // 创建 ModelAndView 对象,并设置视图名称 ModelAndView mv = new ModelAndView("show"); // 添加模型数据 mv.addObject("msg", "User ID:" + userId); return mv; } |
要注意 @PathVariable("") 和 @RequestParam("") 的不同:
@PathVariable("") 是将 URL 中占位符处的值绑定到方法参数上
@RequestParam("") 是将 URL 后的请求参数绑定到方法参数上
附:
推荐一个模拟发送请求的 Chrome 插件 Advanced REST Client,非常好用!
https://chrome.google.com/webstore/detail/advanced-rest-client/hgmloofddffdnphfgcellkdfbfbjeloo
【made by siwuxie095】
@RequestMapping使用须知的更多相关文章
- @ResponseBody使用须知
-------------------siwuxie095 @ResponseBody 使用须知 使用 @ResponseBody 注解映射响应体 @ResponseBody 注解可被应用于方法上,标 ...
- @RequestBody使用须知
-----------------------siwuxie095 @RequestBody 使用须知 使用 @Requ ...
- @CookieValue使用须知
------------------------siwuxie095 @CookieValue 使用须知 使用 @CookieV ...
- @RequestParam使用须知
--------------------------siwuxie095 @RequestParam 使用须知 使用 @Requ ...
- 《开源博客Q群》和《NET上海Q群》入群须知
开源博客Q群 群名:<嗨-博客> 群号:469075305(已满) 491585006(New) 群简介:“我们每个猿都有一个搭建自己独立博客的梦”. 入群要求: 您可以是HR,私聊管理员 ...
- Spring MVC之@RequestMapping 详解
(转自:http://blog.csdn.net/walkerjong/article/details/7994326) 引言: 前段时间项目中用到了RESTful模式来开发程序,但是当用POST.P ...
- SpringMVC(五) RequestMapping 请求参数和请求头
可以通过在@RequestMapping的params参数中设置可以传入的参数,且支持简单的表达式,如以下格式: @RequestMapping(value="helloRWorld&quo ...
- SpringMVC(四) RequestMapping请求方式
常见的Rest API的Get和POST的测试参考代码如下,其中web.xml和Springmvc的配置文件参考HelloWorld测试代码中的配置. 控制类的代码如下: package com.ti ...
- Spring mvc中@RequestMapping 6个基本用法
Spring mvc中@RequestMapping 6个基本用法 spring mvc中的@RequestMapping的用法. 1)最基本的,方法级别上应用,例如: Java代码 @Reques ...
随机推荐
- Java安全编码标准
Java安全编码标准 具体参考Rules 输入验证和数据净化(IDS)规则风险评估概要 IDS00-J净化穿越受信边界的非受信数据 IDS01-J验证前标准化字符串 IDS02-J在验证之前标准化路径 ...
- 深度学习原理与框架-Tensorflow卷积神经网络-神经网络mnist分类
使用tensorflow构造神经网络用来进行mnist数据集的分类 相比与上一节讲到的逻辑回归,神经网络比逻辑回归多了隐藏层,同时在每一个线性变化后添加了relu作为激活函数, 神经网络使用的损失值为 ...
- 网易云音乐api资料
https://github.com/LanFD/music_163 网易云音乐常用API浅析:http://moonlib.com/606.html
- js 正则函数初级
1.test :正则匹配字符串,如果成功则返回true,若果失败则返回false 格式:/正则表达式/.test(字符串) 默认吗匹配规则,区分大小写:如果不区分大小写,则加修饰符 i 例子: < ...
- JavaScript:几种常用循环
##循环数组的方法 1.for循环 for(let i = 0;i < ary.length;i++){ console.log(ary[i]); } 2.forEach ary.forEach ...
- 【原创】思科和锐捷组建多VLAN交换网络(隧道模式Trunk)
组建简单交换网络设计与实施 [利用思科仿真与锐捷实践] 本文目录 第一部分 预备知识 第二部分 设计与仿真 需求分析 整体设计 PT仿真 第三部分 施工部署 console配置 连通测试 第一部分 预 ...
- img标签插入图片返回403,浏览器可以直接打开
参考:https://segmentfault.com/q/1010000011752614/a-1020000011764026 博客园引入外部图片出现,出现403问题,应该是加了防盗链,会检测访问 ...
- ANg-梯度下降算法
概念 为了解决线性回归问题,我们也用梯度下降算法. 算法逻辑如下: 对于线性回归模型中例子,梯度下降可以如下: 算法 实际上梯度下降可有通过求导.这里的符号":="是赋值的含义 有 ...
- 前端Web安全介绍及规避。。。
本文转载自:https://jelon.top/posts/web-security/ 如果侵权,请及时告知. 一.跨站脚本攻击 (xss) 反射型跨站脚本攻击 攻击者会通过社会工程学手段,发送一个 ...
- android 组合方式自定义控件
实现了<android 群英传>的TopBar的小实例.效果图如下: 记录下来,方便下次查看.主要的原理是将2个Button和一个TextView组合在一个RelativeLayout之中 ...