SpringBootWeb请求响应
请求
简单参数
- 参数名与形参变量名相同,定义相同名字的形参即可接收参数
- 如果方法形参名称与请求参数名称不匹配,可以使用
@RequestParam的name属性完成映射。@RequestParam的required属性默认为true,代表请求参数必须传递,如果不传递将报错。如果该参数是可选的,可以将required属性设置为false
总结:
- 简单参数:
- 请求参数名与方法形参变量名相同,会自动进行类型转换
- @RequestParam注解:
- 方法形参名称与请求参数名称不匹配,通过该注解完成映射,该注解的required属性默认是true,代表请求参数必须传递
实体参数
-
简单实体对象:请求参数名与形参对象属性名相同,定义POJO接收即可
-
复杂实体对象:请求参数名与形参对象属性名相同,按照对象层次结构关系即可接收嵌套POJO属性参数。
-
public class User { private String name; private Integer age; private Address address; } public class Address { private String province; private String city; }请求url:htttp://localhost:8080/pojo?name=tom&age=18&address.province=浙江&address.city=金华
-
总结:
- 规则:请求参数名与形参对象属性名相同,即可直接通过POJO接收
数组集合参数
-
数组参数:
-
请求参数名与形参数组名称相同且请求参数为多个,定义数组类型形参即可接收参数
-
@RequestMapping("/arrayParam") public String arrayParam(String[] hobby){ System.out.println(Arrays.toString(hobby)); return "OK"; }http://localhost:8080/arrayParam?hobby=game&hobby=java
-
-
集合参数:
-
请求参数名与形参集合名称相同且请求参数为多个,@RequestParam 绑定参数关系
-
@RequestMapping("/listParam") public String listParam(@RequestParam List<String> hobby){ System.out.println(hobby); return "OK"; }http://localhost:8080/listParam?hobby=game&hobby=java
-
总结:
数组:请求参数名与形参中数组变量名相同,可以直接使用数组封装
集合:请求参数名与形参中集合变量名相同,通过@RequestParam绑定参数关系
日期参数
-
日期参数:
-
使用
@DateTimeFormat注解完成日期参数格式转换 -
@RequestMapping("/dateParam") public String dateParam(@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime updateTime){ System.out.println(updateTime); return "OK"; } -
pattern = "yyyy-MM-dd HH:mm:ss"pattern属性是时间的格式
-
JSON参数
- JSON参数:
- JSON数据键名与形参对象属性名相同,定义POJO类型形参即可接收参数,需要使用
@RequestBody标识
- JSON数据键名与形参对象属性名相同,定义POJO类型形参即可接收参数,需要使用
路径参数
-
路径参数:
-
通过请求URL直接传递参数,使用{…}来标识该路径参数,需要使用 @PathVariable 获取路径参数
-
URL:
http://localhost:8080/path/1、http://localhost:8080/path/1/Tom -
@RequestMapping("/path/{id}") public String pathParam(@PathVariable Integer id){ System.out.println(id); return "OK"; } @RequestMapping("/path/{id}/{name}") public String pathParam2(@PathVariable Integer id, @PathVariable String name){ System.out.println(id+ " : " +name); return "OK"; }
-
总结:
响应
- 注解:
- @ResponseBody
- 类型:方法注解、类注解
- 位置:Controller方法上/类上
- 作用:将方法返回值直接响应,如果返回值类型是 实体对象/集合 ,将会转换为JSON格式响应
- 说明:@RestController = @Controller + @ResponseBody ;