您的位置:首页 > 汽车 > 时评 > 广州工程承包总公司_疫情最新数据消息深圳_营销策划书模板_自己建网站流程

广州工程承包总公司_疫情最新数据消息深圳_营销策划书模板_自己建网站流程

2024/12/26 19:22:12 来源:https://blog.csdn.net/jiabao0520/article/details/143058416  浏览:    关键词:广州工程承包总公司_疫情最新数据消息深圳_营销策划书模板_自己建网站流程
广州工程承包总公司_疫情最新数据消息深圳_营销策划书模板_自己建网站流程

目录

一、@RequestParam

二、@RequestBody

三、@PathVariable

四、@RequestHeader

五、@RequestAttribute

六、@RequestPart

七、@Valid

一、@RequestParam

1.作用

  • 用于将请求中的 查询参数表单参数 绑定到方法的参数上。
  • 支持 GET 和 POST 请求。

2.使用方法

@GetMapping("/search")
public ResponseEntity<List<Item>> searchItems(@RequestParam(value = "keyword", required = false) String keyword,@RequestParam(value = "page", defaultValue = "1") int page) {// 业务逻辑
}

3.属性说明

  • valuename:参数名,对应请求中的参数键名,变量名与参数名相同时可省略。
  • required:是否为必需参数,默认值为 true。如果设置为 false,当参数缺失时,方法不会报错。
  • defaultValue:参数的默认值,当请求中未包含该参数时使用。

二、@RequestBody

1.作用

  • 用于将请求体中的 JSON 数据 绑定到方法的参数上。

  • 常用于处理 POST、PUT、PATCH 请求。

2.使用方法

@PostMapping("/users")
public ResponseEntity<User> createUser(@RequestBody User user) {// 业务逻辑
}

3.属性说明

  • required:是否为必需参数,默认值为 true。如果设置为 false,当请求体为空时,参数值为 null

三、@PathVariable

1.作用

  • 用于将 URL 路径中的变量 绑定到方法的参数上。
  • 常用于 RESTful 风格的接口。

2.使用方法

@GetMapping("/users/{id}")
public ResponseEntity<User> getUser(@PathVariable("id") Long id) {// 业务逻辑
}

3.属性说明

  • valuename:路径变量的名称,对应 {} 中的变量名。
  • required:是否为必需参数,默认值为 true

四、@RequestHeader

1.作用

  • 用于将 请求头信息 绑定到方法的参数上。

2.使用方法

@GetMapping("/profile")
public ResponseEntity<User> getProfile(@RequestHeader("Authorization") String token) {// 业务逻辑
}

3.属性说明

  • valuename:请求头的名称。
  • required:是否为必需参数,默认值为 true
  • defaultValue:当请求头缺失时的默认值。

五、@RequestAttribute

1.作用

  • 用于将 请求范围内的属性 绑定到方法的参数上。
  • 这些属性通常由拦截器或过滤器预先设置。

2.使用方法

@GetMapping("/order")
public ResponseEntity<Order> getOrder(@RequestAttribute("userId") Long userId) {// 业务逻辑
}

3.属性说明

  • valuename:属性的名称。
  • required:是否为必需参数,默认值为 true

4.示例

拦截器设置:

public class AuthInterceptor extends HandlerInterceptorAdapter {@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {Long userId = // 从请求中解析用户IDrequest.setAttribute("userId", userId);return true;}
}

六、@RequestPart

1.作用

  • 用于接收 multipart/form-data 请求中的特定部分,常用于文件上传。
  • @RequestParam 不同,@RequestPart 支持解析复杂的对象和文件。

2.使用方法

@PostMapping("/upload")
public ResponseEntity<?> uploadFile(@RequestPart("file") MultipartFile file,@RequestPart("description") String description) {// 业务逻辑
}

3.属性说明

  • valuename:请求部分的名称。
  • required:是否为必需参数,默认值为 true

七、@Valid

1.简介

作用:用于触发对参数对象的验证。

使用场景:与参数对象(如实体类、DTO)配合使用。

常用的验证注解包括:

  • @NotNull:字段不能为空
  • @NotEmpty:集合、字符串等不能为空
  • @NotBlank:字符串不能为空白字符
  • @Size:指定集合、数组、字符串的长度范围
  • @Min@Max:指定数值的最小值和最大值
  • @Email:邮箱格式验证
  • @Pattern:正则表达式匹配

2.使用方法

public class UserDTO {@NotBlank(message = "用户名不能为空")private String username;@Email(message = "邮箱格式不正确")private String email;@Size(min = 6, max = 20, message = "密码长度必须在6到20位之间")private String password;// Getters and Setters
}
@PostMapping("/register")
public ResponseEntity<?> register(@Valid @RequestBody UserDTO userDTO, BindingResult result) {if (result.hasErrors()) {// 处理验证错误String errorMessage = result.getAllErrors().get(0).getDefaultMessage();return ResponseEntity.badRequest().body(errorMessage);}// 业务逻辑
}

3.异常处理

BindingResult 接口:

  • 用于获取验证结果,必须紧跟在被 @Valid 注解的参数后面。
  • 可用于判断验证是否通过,获取错误信息。

全局异常处理:

可以使用 @ControllerAdvice@ExceptionHandler 注解,统一处理验证异常。

@RestControllerAdvice
public class GlobalExceptionHandler {@ExceptionHandler(MethodArgumentNotValidException.class)public ResponseEntity<?> handleValidationException(MethodArgumentNotValidException ex) {String errorMessage = ex.getBindingResult().getAllErrors().get(0).getDefaultMessage();return ResponseEntity.badRequest().body(errorMessage);}
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com