我想通过
获取参数名称
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 {
}