diff --git a/org.springframework.context/src/main/java/org/springframework/validation/DataBinder.java b/org.springframework.context/src/main/java/org/springframework/validation/DataBinder.java index b5d13ef1847..dbc25972dfb 100644 --- a/org.springframework.context/src/main/java/org/springframework/validation/DataBinder.java +++ b/org.springframework.context/src/main/java/org/springframework/validation/DataBinder.java @@ -623,8 +623,17 @@ public class DataBinder implements PropertyEditorRegistry, TypeConverter { } for (String field : requiredFields) { PropertyValue pv = propertyValues.get(field); - if (pv == null || pv.getValue() == null || - (pv.getValue() instanceof String && !StringUtils.hasText((String) pv.getValue()))) { + boolean empty = (pv == null || pv.getValue() == null); + 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. getBindingErrorProcessor().processMissingFieldError(field, getInternalBindingResult()); // Remove property from property values to bind: