代码之家  ›  专栏  ›  技术社区  ›  katiex7

在我的情况下,bindingResult、fieldErrors或globalErrors是否可以为空?

  •  0
  • katiex7  · 技术社区  · 6 年前

    我有如下的错误处理程序

    @ExceptionHandler(value = {MethodArgumentNotValidException.class})
    public ResponseEntity<Error> methodArgumentNotValidHandler(final MethodArgumentNotValidException e) {
        final List<String> errors = e.getBindingResult().getFieldErrors().stream()
                .map(error -> error.getField() + ": " + error.getDefaultMessage())
                .collect(Collectors.toList());
    
        e.getBindingResult().getGlobalErrors().stream()
                .forEach(error -> errors.add(error.getObjectName() + ": " + error.getDefaultMessage()));
    
        return new ResponseEntity<>(new Error(HttpStatus.UNPROCESSABLE_ENTITY, errors), HttpStatus.UNPROCESSABLE_ENTITY);
    }
    

    不过,我想知道,如果bindingresult或fielderrors from.getFieldErrors或globalErrors from getGlobalErrors结果为空,那将是非常糟糕的。

    2 回复  |  直到 5 年前
        1
  •  1
  •   Karthik R    6 年前

    MethodArgumentNotValidException hasFieldErrors()

        2
  •  0
  •   Dev M    5 年前

    @Autowired
    private MessageSource messageSource;
    ...
    
    FieldError error = bindingResult.getFieldError("fieldName");
    String errorMessage = messageSource.getMessage(error, Locale.getDefault());