----------------------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")

publicModelAndView show(@PathVariable("userId") Long userId) {

//创建ModelAndView对象,并设置视图名称

ModelAndView mv = newModelAndView("show");

//添加模型数据

mv.addObject("msg", "User ID:"+ userId);

returnmv;

}

注意:@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")

publicModelAndView show(@RequestParam("userId") Long userId) {

//创建ModelAndView对象,并设置视图名称

ModelAndView mv = newModelAndView("show");

//添加模型数据

mv.addObject("msg", "User ID:"+ userId);

returnmv;

}

要注意 @PathVariable("") 和 @RequestParam("") 的不同:

@PathVariable("") 是将 URL 中占位符处的值绑定到方法参数上

@RequestParam("") 是将 URL 后的请求参数绑定到方法参数上

附:

推荐一个模拟发送请求的 Chrome 插件Advanced REST Client,非常好用!

【made by siwuxie095】

requestmapping配置页面后_@RequestMapping使用须知相关推荐

  1. requestmapping配置页面后_@RequestMapping接口及页面乱码问题

    老师 对接口及乱码问题请教 接口问题 @RequestMapping("upload.do") @ResponseBody public ServerResponse upload ...

  2. requestmapping配置页面后_第004课:Spring Boot 项目属性配置

    在项目中,很多时候需要用到一些配置的信息,这些信息可能在测试环境和生产环境下会有不同的配置,后面根据实际业务情况有可能还会做修改,针对这种情况,我们不能将这些配置在代码中写死,最好就是写到配置文件中. ...

  3. requestmapping配置页面后_Spring MVC 入门指南(二):@RequestMapping用法详解

    一.@RequestMapping 简介 在Spring MVC 中使用 @RequestMapping 来映射请求,也就是通过它来指定控制器可以处理哪些URL请求,相当于Servlet中在web.x ...

  4. requestmapping配置页面后_SpringBoot2.0 基础案例(03):配置系统全局异常映射处理

    一.异常分类 这里的异常分类从系统处理异常的角度看,主要分类两类:业务异常和系统异常. 1.业务异常 业务异常主要是一些可预见性异常,处理业务异常,用来提示用户的操作,提高系统的可操作性.常见的业务异 ...

  5. mysql配置好后_安装完 MySQL 后必须调整的 10 项配置

    当我们被人雇来监测MySQL性能时,人们希望我们能够检视一下MySQL配置然后给出一些提高建议.许多人在事后都非常惊讶,因为我们建议他们仅仅改动几个设置,即使是这里有好几百个配置项.这篇文章的目的在于 ...

  6. springMVC_day01_概念_入门_@RequestMapping注解_参数封装与绑定_编码过滤器

    文章目录 一.知识回顾 二.三层架构和MVC设计模式 三.springMVC的概念 四.SpringMVC的HelloWorld(重点) 1.引入依赖 2.spring-mvc.xml配置 3.web ...

  7. RTSP视频安防智能监控系统EasyNVR配置完成后登录web页面不显示数据是什么问题?

    EasyNVR视频安防智能监控系统可以说是一款极为轻便的视频安防监控系统,部署在服务器且进行简单配置后即可直接使用,无需自建服务器即可实现网页无插件直播. 正常情况下EasyNVR配置完成后只需通过I ...

  8. 七夕到了,还在加班?98后小哥哥教你用 sula 快速配置页面提前下班去约会

    关注我们 文末有福利 曹清达 ■ 98年的小哥哥,喜欢对新技术进行探索尝试,来解决业务中的效率,质量和体验问题,影响业务.我们的目标是把自己'作没'. 背景 最近负责重构一个后台系统,发现系统内 90 ...

  9. 浏览器 刷新页面后回到顶部_当你在浏览器中,忘记了曾经的登录密码怎么办......

    当你在浏览器中,忘记了曾经的登录密码怎么办... 前言 你还在为使用浏览器的时候,忘记密码而烦恼吗?今天要分享的不为人知的小技巧,利用前端技术原理来帮助你找回原密码. 在我们使用各种网站登录时,总会勾 ...

最新文章

  1. 使用异步 I/O 大大提高应用程序的性能
  2. ITK:平移一个网格
  3. .Net Core2.0下使用Dapper遇到的问题
  4. 一个很不错的wp企业站模板
  5. C++文件读写函数之——fopen、fread和fwrite、fgetc和fputc、fgets和fputs、ftellf和fseek、rewind...
  6. 浏览器访问网页的详细内部过程
  7. yolov3前向传播(二)-- yolov3相关模块的解析与实现(一)
  8. file_operation(文件操作)file(文件)inode(节点)
  9. mac电脑安装mysql
  10. Arch LInux | 网络管理工具iproute2(网络接口、ip地址、路由表)
  11. 进制转换(八进制小数转十进制小数)
  12. nyoj-1182旅游【三进制状态压缩dp】
  13. QQ返利当当特惠活动(10.26~11.4)
  14. UG编程-适合新手的详细讲解
  15. macbook android 屏幕共享,苹果设备小技巧:iPhone,iPad,Mac进行屏幕共享和远程控制...
  16. 牛客网刷题记录 || 结构体和类
  17. 内外网双网卡路由配置
  18. 小志营销:自媒体营销,平民化网络营销新玩法
  19. python学习之路:期权定价与python实现
  20. JavaScript编写日历(简单易懂,代码可以直接运行)

热门文章

  1. Java编程之前的复习和练习
  2. CentOS 配置防火墙操作实例(启、停、开、闭端口)
  3. Linux C/C++ 链接选项之静态库--whole-archive,--no-whole-archive和--start-group, --end-group
  4. eclipse MAT分析heap dump
  5. 去除警告,打电话,发信息,应用程序之间跳转,打印沙盒路径,字符串名字转换方法,包装导航控制器等的代码...
  6. iOS_Spring自动生成Model,Service,Controller 之 介绍
  7. wan886网址导航 Bo9bo高清电影 两个图标 怎么都删不掉
  8. 各种格式的视频播放的代码(wma格式)
  9. USACO_2_1_The Castle
  10. eclipse中测试Hibernate异常报 ORA-00926: 缺失 VALUES 关键字