@NotBlank如何自定义返回code
时间: 2023-06-29 22:12:51 浏览: 93
在使用 @NotBlank 注解时,如果校验失败会返回默认的 code 和 message,如果需要自定义返回的 code,可以在 controller 层对校验失败的异常进行捕获并处理。
可以使用 @ExceptionHandler 注解定义一个异常处理方法,捕获校验失败的异常,并在方法中返回自定义的 code 和 message。例如:
```java
@ExceptionHandler(MethodArgumentNotValidException.class)
public ResponseEntity<Object> handleValidationException(MethodArgumentNotValidException ex) {
String message = "参数校验失败";
int code = 400;
return new ResponseEntity<>(new CustomResponse(code, message), HttpStatus.BAD_REQUEST);
}
```
在上面的代码中,我们定义了一个异常处理方法,在该方法中返回自定义的 code 和 message。在使用 @NotBlank 注解时,如果校验失败,会抛出 MethodArgumentNotValidException 异常,该异常会被我们定义的异常处理方法捕获并处理,返回自定义的结果。
相关问题
@NotBlank如何自定义返回code值
@NotBlank注解是用于校验字符串类型参数是否为空的注解,它会在校验不通过的时候抛出ConstraintViolationException异常。如果你想自定义返回code值,可以通过在Controller层的方法上添加@ExceptionHandler注解,并在对应的方法中处理ConstraintViolationException异常来实现。例如:
```java
@RestController
public class UserController {
@PostMapping("/user")
public ResultVO addUser(@NotBlank(message = "姓名不能为空") String name) {
// 添加用户的逻辑
return new ResultVO("0", "添加用户成功");
}
@ExceptionHandler(ConstraintViolationException.class)
public ResultVO handleConstraintViolationException(ConstraintViolationException e) {
String code = "1001"; // 自定义返回的code值
String message = e.getMessage(); // 获取校验提示信息
return new ResultVO(code, message);
}
}
```
在上述代码中,我们在UserController类中添加了一个addUser方法,该方法使用了@NotBlank注解对name参数进行校验。当校验不通过时,会抛出ConstraintViolationException异常,我们通过添加@ExceptionHandler注解并定义handleConstraintViolationException方法来处理该异常。在该方法中,我们可以自定义返回的code值和message。最后将自定义的ResultVO返回即可。
post请求@NotBlank如何自定义返回code
要自定义返回code,可以在对应的异常处理类中自定义异常处理方法,并在方法中设置需要返回的code。例如,在使用@NotBlank注解时,如果检验失败,会抛出MethodArgumentNotValidException异常,可以自定义处理该异常的方法,如下所示:
```java
@ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(MethodArgumentNotValidException.class)
@ResponseBody
public ResultVO handleMethodArgumentNotValidException(MethodArgumentNotValidException e) {
BindingResult bindingResult = e.getBindingResult();
String code = "1001";
String message = bindingResult.getFieldError().getDefaultMessage();
return new ResultVO(code, message);
}
}
```
在上述代码中,我们定义了一个全局的异常处理类GlobalExceptionHandler,在其中定义了一个处理MethodArgumentNotValidException异常的方法handleMethodArgumentNotValidException。在该方法中,我们可以根据业务需要自定义返回的code和message。最后,将自定义的ResultVO返回即可。
阅读全文