1、通过json获取参数
2、请求路径参数@PathVariable
3、@RequestParam的使用
4、@RequestBody
1 通过json获取参数
通过浏览器的url为后端控制层函数赋值,通过注解@responseBody 将java对象转换为json格式的数据返回给前端页面。
@ResponseBody注解的作用是将controller的方法返回的对象通过适当的转换器转换为指定的格式之后,写入到response对象的body区,通常用来返回JSON数据或者是XML数据。一般在异步获取数据时使用【也就是AJAX】。
后端Controller层代码如下:
1 | "/param") ( |
前端浏览器请求为:
http://localhost:8080/param?name=zhangsan&age=14
之后前端返回的Json数据为:
{“name”:zhangsan,“age”:14}
2 请求路径参数@PathVariable
获取路径参数。即前端浏览器发起url/{id}请求的这种形式。
后端Controller层代码如下:
1 | "/param/{name}/{age}") ( |
其中@PathVariable(value = “name”, required = false)中有value和required两个参数,第一个即为指定传递的参数,第二个为该参数是否必须,若为false则可以在前端不传入该参数,默认为null空值。
3 @RequestParam的使用
使用@RequestParm用于绑定controller上的参数,可以是多个参数,也可以是一个Map集合,GET,POST均可;
语法:@RequestParam(value=”参数名”,required=”true/false”,defaultValue=””)
value:参数名
required:是否包含该参数,默认为true,表示该请求路径中必须包含该参数,如果不包含就报错。
defaultValue:默认参数值,如果设置了该值,required=true将失效,自动为false,如果没有传该参数,就使用默认值
1 | "/param/{name}/{age}") ( |
@RequestParam 和@PathVariable 之间的区别:
@RequestParam 用来获得静态URL中传入的参数,@PathVariable 用来获得动态URL中的参数
4 @RequestBody
@RequestBody绑定的是一个对象实体,将 HTTP 请求正文插入方法中,使用适合的 HttpMessageConverter 将请求体写入某个对象。
1 | 1) 该注解用于读取Request请求的body部分数据,使用系统默认配置的HttpMessageConverter进行解析,然后把相应的数据绑定 |
使用方法:
1 |
|
或者:
1 | "requestBody") (value = |
request的body部分的数据编码格式由header部分的Content-Type指定;
@RequestBody不支持Get请求?(存疑)因为get请求没有HttpEntity。