对于各种注解而言,排第一的当然是“@Controller”,表明某类是一个controller。

“@RequestMapping”请求路径映射,如果标注在某个controller的类级别上,则表明访问此类路径下的方法都要加上其配置的路径;最常用是标注在方法上,表明哪个具体的方法来接受处理某次请求。

@Controller
@RequestMapping(value="/book")
public class BookController { @RequestMapping(value="/title")
public String getTitle(){
return "title";
} @RequestMapping(value="/content")
public String getContent(){
return "content";
}
}

由于BookController类加了value="/book"的“@RequestMapping”的注解,所有相关路径都要加上"/book",即请求的url分别为:

  1. http://localhost:8080/book/title
  2. http://localhost:8080/book/content

"@RequestMapping"的value值前后是否有“/”对请求的路径没有影响,即value="book" 、"/book"、"/book/"其效果是一样的

"@RequestMapping" 的属性

    • value: 指定请求的实际url
      1. 普通的具体值。如前面的value="/book"。
      2. 含某变量的一类值

      @RequestMapping(value="/get/{bookId}")
      public String getBookById(@PathVariable String bookId,Model model){
      model.addAttribute("bookId", bookId);
      return "book";
      }

      路径中的bookId可以当变量,@PathVariable 注解即提取路径中的变量值

      3.ant风格
      @RequestMapping(value="/get/id?"):可匹配“/get/id1”或“/get/ida”,但不匹配“/get/id”或“/get/idaa”;
      @RequestMapping(value="/get/id*"):可匹配“/get/idabc”或“/get/id”,但不匹配“/get/idabc/abc”;
      @RequestMapping(value="/get/id/*"):可匹配“/get/id/abc”,但不匹配“/get/idabc”;
      @RequestMapping(value="/get/id/**/{id}"):可匹配“/get/id/abc/abc/123”或“/get/id/123”,也就是Ant风格和URI模板变量风格可混用;

      4. 含正则表达式的一类值
      @RequestMapping(value="/get/{idPre:\\d+}-{idNum:\\d+}"):可以匹配“/get/123-1”,但不能匹配“/get/abc-1”,这样可以设计更加严格的规则。
      可以通过@PathVariable 注解提取路径中的变量(idPre,idNum)

      5. 或关系
      @RequestMapping(value={"/get","/fetch"} )即 /get或/fetch都会映射到该方法上

    • method:  指定请求的method类型, GET、POST、PUT、DELETE等;
      @RequestMapping(value="/get/{bookid}",method={RequestMethod.GET,RequestMethod.POST})
    • params
      @RequestMapping(params="action=del"),请求参数包含“action=del”,如:http://localhost:8080/book?action=del
    • headers
      @RequestMapping(value="/header/id", headers = "Accept=application/json"):表示请求的URL必须为“/header/id 且 请求头中必须有“Accept =application/json”参数即可匹配。

最新文章

  1. 深入.NET平台和C#编程总结大全
  2. HTML5的实用
  3. atom编辑markdown之上传图片
  4. 第三次个人作业——关于K米(Andorid)的案例分析
  5. 删除某一BSC在某一时间段内的数据
  6. Mybatis 与 spring mvc
  7. 使用OLEDB读取不同版本Excel数据的连接字符串设置
  8. cf B. Vasya and Public Transport
  9. ExecutorService invokeAll 实例(转)
  10. 「7天自制PHP框架」第一天:路由与控制器
  11. ArcEngine小问题解决
  12. Ubuntu18.04,安装Redis配置远程连接访问和简单使用Redis
  13. STL库学习笔记(待补充QAQ
  14. NPOI帮助类
  15. CentOS7下单机部署RabbltMQ环境的操作记录
  16. DVWA的安装与简单使用
  17. Visual Studio Package 插件开发(Visual Studio SDK)
  18. Vue学习系列---安装
  19. C# 如何操作串口
  20. webuploader 文件上传总结

热门文章

  1. nginx服务器配置多域名
  2. 实现Server.UrlEncode和Server.UrlDecode功能的js代码
  3. MongoDB Long/Int(长整型)的自增长主键 解决方案
  4. JS对Json对象Distinct
  5. [原创]PostgreSQL Plus Advince Server在 HA环境中一对多的Stream Replication配置(三)
  6. Net Core开源通讯组件 SmartRoute
  7. Week1 Team Homework #2: Introduction of each team member
  8. Flash设置全屏后,放到网页中显示不正常
  9. web服务器和应用服务器
  10. CSDN——【低调的草原狼】——Ext4.2学习目录整理