有没有一种方法可以将字段名称捕获到类级别的自定义注释的字段错误中?

时间:2019-03-27 10:16:29

标签: java spring spring-boot

我想通过
获取参数名称 MethodArgumentNotValidException ex.getBindingResult()。getFieldError(),在其中将自定义注释应用于类级别。我该怎么办?

我试图将其添加到fieldErrors列表中。但这不起作用。

CustomFieldValidator类

public CustomFieldValidator implements ConstraintValidator<CustomFieldConstraint, Object> {

    private String baseFieldName;
    private String[] dependedFields;
    private List<Object> conditionalValuesList;
    private List<Object> expectedValuesList;

    @Override
    public void initialize(final CustomFieldConstraint constraintAnnotation) {
        this.baseFieldName = constraintAnnotation.baseField();
        this.dependedFields = constraintAnnotation.dependedFields();
        this.conditionalValuesList = new ArrayList<>(Arrays.asList(constraintAnnotation.conditionValues()));
        this.expectedValuesList = new ArrayList<>(Arrays.asList(constraintAnnotation.expectedValues()));
    }
}


下面是ExceptionHandlerController类

    @ResponseStatus(HttpStatus.BAD_REQUEST)
    @ResponseBody
    public InErrorResponse handleMethodArgumentNotValid(MethodArgumentNotValidException ex,
            MultipleReadHttpRequest request) {

        BindingResult result = null;
        List<FieldError> fieldErrors = null;

        result = ex.getBindingResult();
        fieldErrors = result.getFieldErrors();

这是我将自定义注释包含在域类中的方式

@CustomFieldConstraint(baseField = "deviceXyz", conditionValues = { "02" }, dependedFields = {
        "eDSRequestorXyz" })
public class InAXyz {
}

0 个答案:

没有答案