SpringBoot中怎么实现请求参数校验

   2024-10-27 2930
核心提示:在Spring Boot中,可以使用JSR 303规范中的注解来实现请求参数的校验。具体步骤如下:在Controller类中的请求方法参数前添加校验

在Spring Boot中,可以使用JSR 303规范中的注解来实现请求参数的校验。具体步骤如下:

在Controller类中的请求方法参数前添加校验注解,比如@Validated和@NotBlank等。
@RestController@RequestMapping("/api")@Validatedpublic class UserController {        @PostMapping("/user")    public ResponseEntity<String> createUser(@Valid @RequestBody UserDto userDto) {        // 处理请求参数        return ResponseEntity.ok("User created successfully");    }}
创建一个DTO类,用来封装请求参数,并在DTO类的属性上添加校验注解。
public class UserDto {    @NotBlank(message = "Name is mandatory")    private String name;    @Email(message = "Email should be valid")    private String email;    // getter and setter}
在Controller类中定义一个全局异常处理器,用来捕获校验失败的异常,并返回错误信息。
@ControllerAdvicepublic class GlobalExceptionHandler {    @ExceptionHandler(MethodArgumentNotValidException.class)    @ResponseStatus(HttpStatus.BAD_REQUEST)    @ResponseBody    public ResponseEntity<String> handleValidationException(MethodArgumentNotValidException ex) {        BindingResult result = ex.getBindingResult();        List<String> errorMessages = result.getAllErrors().stream()                .map(DefaultMessageSourceResolvable::getDefaultMessage)                .collect(Collectors.toList());        return ResponseEntity.badRequest().body(String.join(", ", errorMessages));    }}

这样,当请求参数校验失败时,会返回相应的错误信息。Spring Boot会自动校验请求参数,并在校验失败时抛出MethodArgumentNotValidException异常,全局异常处理器会捕获该异常并返回错误信息。

 
举报打赏
 
更多>同类网点查询
推荐图文
推荐网点查询
点击排行

网站首页  |  关于我们  |  联系方式网站留言    |  赣ICP备2021007278号