使用@RequestMapping映射请求
通过请求URL进行映射
@RequestMapping使用value值指定请求的URL,如@Re-questMapping("/user")、@RequestMapping("/register")等。
Ant风格
@RequestMapping不但支持标准的URL,还支持Ant风格(?、*和**字符,参见4.3.2节)的和带{xxx}占位符的URL。以下URL都是合法的。
•/user/*/createUser:匹配/user/aaa/createUser、/user/bbb/createUser等URL。
•/user/**/createUser:匹配/user/createUser、/user/aaa/bbb/createUser等URL。
•/user/createUser??:匹配/user/createUseraa、/user/createUserbb等URL。
•/user/{userId}:匹配user/123、user/456等URL。
•/user/**/{userId}:匹配user/aaa/bbb/123、user/aaa/456等URL。
•company/{companyId}/user/{userId}/detail:匹配com-pany/123/user/456/detail等URL。
/** * ? :匹配一个字符 "/ant/??" /ant/11 * * :匹配任意字符 "/ant/*" /ant/111 * **:匹配多层路径 "/ant/**" /ant /ant/111 /ant/111/222 */ // @RequestMapping(value = "/ant/*", method = RequestMethod.GET) // @RequestMapping(value = "/ant/**", method = RequestMethod.GET) // @RequestMapping(value = "/ant??", method = RequestMethod.GET) @RequestMapping(value = "/ant/??", method = RequestMethod.GET) public void testAnt() { log.info(""); }
@PathVariable
通过@PathVariable可以将URL中的占位符参数绑定到控制器处理方法的入参中
@RequestMapping(value = "/testPathVariable/{id}", method = RequestMethod.GET) public void testPathVariable(@PathVariable("id") String id) { log.info(id); }
通过请求参数、请求方法或请求头进行映射
@RequestMapping(path = "/testRequestMappingParams", method = RequestMethod.POST, params = "id") //① 使用请求方法及请求参数映射请求 public void testRequestMappingParams(@RequestParam("id") String id) { log.info(id); } @RequestMapping(path = "/testRequestMappingHeaders", headers = "content-type=text/*") //② 使用报文头映射请求 public void testRequestMappingHeaders() { log.info(""); }
@RequestMapping的value、method、params及headers分别表示请求URL、请求方法、请求参数及报文头的映射条件,它们之间是与的关系,联合使用多个条件项可让请求映射更加精确化。
映射表达式
params和headers分别通过请求参数及报文头属性进行映射,它们支持简单的映射表达式。下面以params表达式为例进行说明,headers可以参照params来理解。
•"param1":表示请求须包含名为param1的请求参数。
•"!param1":表示请求不能包含名为param1的请求参数。
•"param1!=value1":表示请求包含名为param1的请求参数,但其值不能为value1。
•{"param1=value1","param2"}:表示请求必须包含名为param1和param2的两个请求参数,且param1参数的值必须为value1。
书籍: 精通Spring 4.x:企业应用开发实战 17.2.1 使用@RequestMapping映射请求
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律