使用@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映射请求

posted @   草木物语  阅读(51)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示