首页 > 解决方案 > handleMethodArgumentNotValid 在春季 5 中不起作用

问题描述

我使用 spring 5 并进行验证,当我使用 bindig 结果时,它可以获取字段有错误,但是当我想使用@Controller 建议如下时,handleMethodArgumentNotValid 在使用 Postman 进行测试时没有命中和工作,只是返回错误 400 错误请求。我无法捕捉到 handleMethodArgumentNotValid excprion。

@ControllerAdvice
@Order(Ordered.HIGHEST_PRECEDENCE)
public class GlobalControllerExceptionHandler extends ResponseEntityExceptionHandler {

    private static final MerchantManagerLogger logger =
            MerchantManagerLogger.getLogger(GlobalControllerExceptionHandler.class);


    @Override
    protected ResponseEntity<Object> handleMethodArgumentNotValid(MethodArgumentNotValidException ex, HttpHeaders headers, HttpStatus status, WebRequest request) {
 
        return super.handleMethodArgumentNotValid(ex, headers, status, request);
    }

和我的控制器:

    @PostMapping(value = "/tax/changeTerminalCashRegister",
            produces = MediaType.APPLICATION_JSON_VALUE,
            consumes = MediaType.APPLICATION_JSON_VALUE)
    ChangeTerminalTaxResponseDto changeCashRegisterStatus(@Valid @RequestBody TaxChangeCashRegisterStatusReqDto requestBody) {
//        if(bindingResult.hasErrors()){
//            bindingResult.getFieldErrors();
//        }

        return changeTerminalTaxService.convertCashRegisterStatus(requestBody);
    }

标签: spring

解决方案


推荐阅读