added special handling of String array values for required fields, e.g. for WebRequestDataBinder (SPR-6552)
This commit is contained in:
parent
26b3443299
commit
86475593bb
|
|
@ -623,8 +623,17 @@ public class DataBinder implements PropertyEditorRegistry, TypeConverter {
|
||||||
}
|
}
|
||||||
for (String field : requiredFields) {
|
for (String field : requiredFields) {
|
||||||
PropertyValue pv = propertyValues.get(field);
|
PropertyValue pv = propertyValues.get(field);
|
||||||
if (pv == null || pv.getValue() == null ||
|
boolean empty = (pv == null || pv.getValue() == null);
|
||||||
(pv.getValue() instanceof String && !StringUtils.hasText((String) pv.getValue()))) {
|
if (!empty) {
|
||||||
|
if (pv.getValue() instanceof String) {
|
||||||
|
empty = !StringUtils.hasText((String) pv.getValue());
|
||||||
|
}
|
||||||
|
else if (pv.getValue() instanceof String[]) {
|
||||||
|
String[] values = (String[]) pv.getValue();
|
||||||
|
empty = (values.length == 0 || !StringUtils.hasText(values[0]));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (empty) {
|
||||||
// Use bind error processor to create FieldError.
|
// Use bind error processor to create FieldError.
|
||||||
getBindingErrorProcessor().processMissingFieldError(field, getInternalBindingResult());
|
getBindingErrorProcessor().processMissingFieldError(field, getInternalBindingResult());
|
||||||
// Remove property from property values to bind:
|
// Remove property from property values to bind:
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue