@RequestMapping的参数和用法

@RequestMapping的参数和用法
一、简介
二、属性
1、value
1)说明
2)示例
a.普通的具体值
b.含有某变量的一类值(URI Template Patterns with Path Variables)
c.含正则表达式的一类值( URI Template Patterns with Regular Expressions)
2、method
1)说明
2)示例
3、consumes
1)说明
2)示例
4、produces
1)说明
2)示例
5、params
1)说明
2)示例
6、headers
1)说明
2)示例
三、@RequestMapping 快捷方式
一、简介
RequestMapping 是一个用来处理请求地址映射的注解,可用于类或方法上。

用于类上:表示类中的所有响应请求的方法都是以该地址作为父路径

@RequestMapping("/building")
public class BuildingController {
}

用于方法上: 提供进一步的细分映射信息

@RequestMapping("/building")
public class BuildingController {

	@RequestMapping(value = "/list/{communityId}")
	public BaseDTO list(@PathVariable String communityId ) {
	    // TODO
	}
}

二、属性
1、value
1)说明
指定请求的实际地址,指定的地址可以是URI Template 模式;

2)示例
a.普通的具体值

@RequestMapping(value = "/list")
public BaseDTO list(@PathVariable String communityId ) {
    // TODO
}
//多个请求映射到一个方法
@RequestMapping(value = {  
        "",  
        "/page",  
        "page*"
    })  
public BaseDTO list(@PathVariable String communityId ) {
    // TODO
}

b.含有某变量的一类值(URI Template Patterns with Path Variables)

@RequestMapping(value = "/list/{communityId}")
public BaseDTO list(@PathVariable String communityId ) {
    // TODO
}
c.含正则表达式的一类值( URI Template Patterns with Regular Expressions)
@RequestMapping(value = "/list/{communityId:[a-z-]+}-{version:\d\.\d\.\d}.{extension:\.[a-z]}")  
public BaseDTO list(@PathVariable String communityId ) {
    // TODO
}

2、method
1)说明
指定请求的method类型, GET、POST、PUT、DELETE等;

2)示例

@RequestMapping(value = "/list" , method = RequestMethod.POST)
public BaseDTO list(@PathVariable String communityId) {
    // TODO
}

3、consumes
1)说明
指定处理请求的 提交内容类型 (Content-Type),例如 application/json, text/html

2)示例

//方法仅处理request Content-Type为“application/json”类型的请求
@RequestMapping(value = "/list" , method = RequestMethod.POST,consumes="application/json")
public void list(@PathVariable String communityId) {
   // TODO
}

4、produces
1)说明
指定 返回的内容类型 ,仅当request请求头中的(Accept)类型中包含该指定类型才返回;

2)示例

@RequestMapping(value = "/list" , method = RequestMethod.POST,produces="application/json")
public JSONObject list(@PathVariable String communityId) {
   JSONObject object = new JSONObject();
   object.put("communityId",communityId);
   return object;
}

//@responseBody就是返回值是json数据,使用@responseBody,就可以省略produces属性
@RequestMapping(value = "/list" , method = RequestMethod.POST)
@ResponseBody
public JSONObject list(@PathVariable String communityId) {
   JSONObject object = new JSONObject();
   object.put("communityId",communityId);
   return object;
}

//返回值是json数据,字符编码为utf-8
@RequestMapping(value = "/list" , method = RequestMethod.POST,produces="application/json;charset=utf-8")
public JSONObject list(@PathVariable String communityId) {
   JSONObject object = new JSONObject();
   object.put("communityId",communityId);
   return object;
}

5、params
1)说明
指定request中必须包含某些参数值时,才让该方法处理。

2)示例

//设定必须包含username 和age两个参数,且age参数不为10 (可以有多个参数)
@RequestMapping(value = "/list" , method = RequestMethod.POST,params = { "username","age!=10" })
public JSONObject list(@PathVariable String communityId) {
   JSONObject object = new JSONObject();
   object.put("communityId",communityId);
   return object;
}

6、headers
1)说明
指定request中必须包含某些指定的header值,才能让该方法处理请求。

2)示例

//仅处理request的header中包含了指定“Refer”请求头和对应值为“http://www.ifeng.com/”的请求;
@RequestMapping(value = "/list" , method = RequestMethod.POST,headers="Referer=http://www.ifeng.com/")
public JSONObject list(@PathVariable String communityId) {
   JSONObject object = new JSONObject();
   object.put("communityId",communityId);
   return object;
}

三、@RequestMapping 快捷方式
@GetMapping
@PostMapping
@PutMapping
@DeleteMapping
@PatchMapping
@RequestMapping接口动态参数

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
@RequestMapping是Spring MVC中用于映射请求路径和处理方法的注解,它可以用于类级别和方法级别。 在方法级别上,@RequestMapping注解可以接收以下一些常用的参数: 1. value/path:指定请求的URL路径。可以是一个字符串或一个字符串数组,用于匹配请求的URL。例如:`@RequestMapping(value = "/users")`。 2. method:指定请求的HTTP方法。可以是RequestMethod枚举类型,或者是RequestMethod枚举类型数组,用于限定请求的HTTP方法。例如:`@RequestMapping(value = "/users", method = RequestMethod.GET)`。 3. params:指定请求的参数条件。可以是一个字符串,用于匹配请求中的参数;或者是一个字符串数组,用于同时匹配多个参数条件。例如:`@RequestMapping(value = "/users", params = "id=1")`。 4. headers:指定请求的头部条件。可以是一个字符串,用于匹配请求中的头部信息;或者是一个字符串数组,用于同时匹配多个头部条件。例如:`@RequestMapping(value = "/users", headers = "Content-Type=application/json")`。 5. consumes:指定处理方法可接受的请求内容类型。可以是一个字符串,用于匹配请求的Content-Type头部;或者是一个字符串数组,用于同时匹配多个内容类型。例如:`@RequestMapping(value = "/users", consumes = "application/json")`。 6. produces:指定处理方法可返回的响应内容类型。可以是一个字符串,用于设置返回的Content-Type头部;或者是一个字符串数组,用于同时设置多个内容类型。例如:`@RequestMapping(value = "/users", produces = "application/json")`。 上述参数可以组合使用,以更精确地映射请求,例如: ```java @RequestMapping(value = "/users", method = RequestMethod.GET, params = "id=1") public User getUserById() { // 处理方法逻辑 } ``` 在上述示例中,请求路径为`/users`,请求方法为GET,同时需要满足参数`id=1`的条件才能匹配到该处理方法。 通过合理使用@RequestMapping参数,我们可以灵活地映射和处理各种请求,并满足不同的业务需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值