一、Controller层
1.@RestController = @Controller+@ResponseBody
2.@RequestMapping
@GetMapping --> @RequestMapping(method = {RequestMethod.GET})
@PostMapping --> @RequestMapping(method = {RequestMethod.POST})
@PutMapping --> @RequestMapping(method = {RequestMethod.PUT})
@DeleteMapping --> @RequestMapping(method = {RequestMethod.DELETE})
3.接受参数
3.1 简单参数(即传来的参数是键值对形式):@RequestParam
注意:如果传来的参数名称和方法的形参相同时,可以不加
如果传来的键值对比较多时,可以考虑定义对象来接收参数
定义对象来接收时,仍然要确保属性名称与传来的参数名称相同
当前端传递的是同一参数多值(数组/集合)时,
例如 name=xiaozhang&name=xiaoyuan 或者 name=xiaozhang,xiaoyuan
使用数组来接受参数,不需要加该注解(因为默认情况下是封装到数组)
使用集合来接受参数,必须加该注解
3.2日期参数 :@DateTimeFormat 在pattern属性中指定解析格式
通常搭配Date类型或LocalDateTime类型的方法形参来使用
例如:@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime updateTime
3.3JSON参数 :@RequestBody ★
传递JSON格式的参数,在Controller中会使用实体类进行封装
封装规则:JSON数据键名与形参对象属性名相同,定义POJO类型形参即可接收参数。
需要使用 @RequestBody标识。
@RequestBody注解:将JSON数据映射到形参的实体类对象中
(JSON中的key和实体类中的属性名保持一致)
3.4路径参数 :@PathVariable
接收URL路径的参数
例如:前端URL路径:/users/1
后端接口路径 :/users/{userId}
后端方法@PathVariable String userId
注意:如果后端形参与前端传来的参数不一样时可以这样使用
@PathVariable("userId") String id
4.响应结果
@ResponseBody
将方法返回值直接响应给浏览器
如果返回值类型是实体对象/集合,将会转换为JSON格式后再响应给浏览器