Ensure getField(String) wildcard support with SF 6.1+

Closes gh-1814
This commit is contained in:
rstoyanchev
2024-10-10 17:57:59 +01:00
parent 6b5200fc39
commit 6151be43cd

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2004-2012 the original author or authors.
* Copyright 2004-2024 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -37,6 +37,7 @@ import org.springframework.binding.message.MessageContext;
import org.springframework.binding.message.MessageCriteria;
import org.springframework.binding.message.Severity;
import org.springframework.core.convert.TypeDescriptor;
import org.springframework.lang.Nullable;
import org.springframework.util.Assert;
import org.springframework.validation.AbstractErrors;
import org.springframework.validation.BindingResult;
@@ -127,6 +128,12 @@ public class BindingModel extends AbstractErrors implements BindingResult {
return toErrors(messageContext.getMessagesByCriteria(messageCriteria), FIELD_ERRORS);
}
// Override to ensure use of overridden getFieldErrors(String)
public FieldError getFieldError(String field) {
List<FieldError> fieldErrors = getFieldErrors(field);
return (!fieldErrors.isEmpty() ? fieldErrors.get(0) : null);
}
public Class<?> getFieldType(String field) {
return parseFieldExpression(fixedField(field), false).getValueType(boundObject);
}