Spring MVC @RequestMapping使用方法

@RequestMapping
是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。

含有如下六个属性:

value:指定请求的实际地址

method:指定请求类型,GET、POST、PUT、DELETE等

consumes:指定处理请求的提交内容类型(Contetn-Type),例如application/json, text/html

produces:指定返回的内容类型

params:指定request中必须包含某些参数值时,才进行处理

headers:指定request中必须包含某些指定的header值,才进行处理

一、value取值

1、普通的具体值

请求地址:http://localhsot:8080/Test/test

@RequestMapping("/test")
	public @ResponseBody String test()
	{
		return "This is a test";
	}

带参数请求地址:http://localhsot:8080/Test/test2?id=1

@RequestMapping("/test2")
	public @ResponseBody String test(int id)
	{
		System.out.println(id);
		return "This is a test "+id;
	}

请求地址参数名需与test参数名相同,例:id

带参数请求地址:http://localhsot:8080/Test/test2?ids=1

@RequestMapping("/test2")
	public @ResponseBody String test(@RequestParam("ids")int id)
	{
		System.out.println(id);
		return "This is a test "+id;
	}
请求地址参数名需与@RequestParam定义的参数名相同,例:ids

2、含有变量的值

(1)单一变量

请求地址:http://localhsot:8080/Test/test/2

@RequestMapping("/test/{id}")
	public @ResponseBody String test(@PathVariable int id)
	{
		return "This is a test "+id;
	}
变量名与方法参数名相同,例:id


请求地址:http://localhsot:8080/Test/test2/2

@RequestMapping("/test2/{ids}")
	public @ResponseBody String test2(@PathVariable("ids") int id)
	{
		return "This is a test "+id;
	}
变量名与@PathVariable定义变量名相同,例:ids

(2)多个变量

@RequestMapping("/test/{ids}/a/{id}")
	public @ResponseBody String test(@PathVariable int id,@PathVariable int ids)
	{
		return "This is a test "+id;
	}
@PathVariable用法与单一变量相同

3、含有正则表达式的值

@RequestMapping("/test/{name:[a-z]+}")
	public @ResponseBody String test(@PathVariable String name)
	{
		return "This is a test, "+name;
	}
@PathVariable用法相同,且可包含多个正则表达式值

二、method

@RequestMapping(value="/test",method=RequestMethod.POST)
	public @ResponseBody String test()
	{
		return "This is a test";
	}
仅响应post请求

三、cousumes

@RequestMapping(value="/test",consumes="application/json")
	public @ResponseBody String test()
	{
		return "This is a test";
	}
仅响应Content-Type为"application/json"的请求

四、produces

@RequestMapping(value="/test",produces="application/json")
	public @ResponseBody String test()
	{
		return "This is a test";
	}
仅响应请求头Accept的值为"application/json"的请求
五、params
@RequestMapping(value="/test",params="age")
	public @ResponseBody String test(long age)
	{
		System.out.println(age);
		return "This is a test";
	}
仅响应含请求参数age的请求

@RequestMapping(value="/test",params="age=1")
	public @ResponseBody String test(long age)
	{
		System.out.println(age);
		return "This is a test";
	}
仅响应含请求参数age,且值为1的请求

六、headers

@RequestMapping(value="/test",headers="age")
	public @ResponseBody String test()
	{
		return "This is a test";
	}
仅响应header含参数age的请求

@RequestMapping(value="/test",headers="age=1")
	public @ResponseBody String test()
	{
		return "This is a test";
	}
仅响应header含参数age且值为1的请求





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值