@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 ...
随机推荐
- golang redis集群操作:redis-go-cluster
背景 感觉redis-cli desktop及其难用,最近用golang做了个redis查询工具,支持单例和集群操作,终于不再卡顿!!! 用到的包 "github.com/garyburd/ ...
- screen 命令安装使用
初次接触Linux的朋友总会有个感觉:Windows平台想同时运行多个操作,执行多个程序或命令只需要打开程序即可:但在Linux中,命令行就一个,要想同时执行多个命令如何操作? 其实,只需要一个简简单 ...
- Django - cookies 会话跟踪技术
一.HTTP协议的无状态保存 两次请求之间没有关联 会话理解为客户端与服务器之间的一次会晤,在一次会晤中可能会包含多次请求和响应 2.会话路径技术使用Cookie或session完成 我们知道HTTP ...
- ssm框架之配置日志系统打印到控制台与指定文件
前提: 0:ssm框架已经搭建并且成功运行 1.maven环境配置成功 2.tomcat配置成功,并且配置本机的tomcat环境变量 内容: 0.导入所需要的jar包 <!-- 配置log4j日 ...
- 尚硅谷springboot学习20-web开发简介
使用SpringBoot 1).创建SpringBoot应用,添加我们需要的模块: 2).SpringBoot已经默认将这些场景配置好了,只需要在配置文件中指定少量配置就可以运行起来 3).自己编写业 ...
- centos 下修改mysql 默认字符集
解决办法: CentOS 7下修改MySQL数据库字符编码为UTF-8,UTF-8包含全世界所有国家需要用到的字符,是国际编码. 具体操作: 1.进入MySQL控制台 mysql -u root - ...
- Python开发环境搭建指导
本文主要介绍Python开发环境的搭建.主要包括如下几部分内容: (1)Python软件的安装.注意版本的选择和安装过程中选项的勾选. (2)pip工具环境变量.镜像源的配置使用和常用镜像源介绍.pi ...
- 用Delphi改变图片的像素,即大小
我给你讲一种非常简单的方法: 第一步:在窗体上放上image1和image2两个图片控件.再放一个Button按钮控件. 第二步:在image1的Picture属性中载入一张JPG或者BMP图片.而i ...
- 学Android开发的人可以去的几个网站
学Android开发的人可以去的几个网站 1.<IT蓝豹>Android开源项目分享平台国内非常好的一个Android开发者分享站,分享android所有特效,每天都有最新的Android ...
- JAVA&PYTHON