forgot to commit type descriptor
This commit is contained in:
@@ -576,6 +576,9 @@ public class GenericBinder implements Binder {
|
||||
return results.size();
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return "[BindingResults = " + results.toString() + "]";
|
||||
}
|
||||
}
|
||||
|
||||
class InvalidFormat implements BindingResult {
|
||||
@@ -626,6 +629,11 @@ public class GenericBinder implements Binder {
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return getAlert().toString();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class Success implements BindingResult {
|
||||
@@ -672,6 +680,10 @@ public class GenericBinder implements Binder {
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return getAlert().toString();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -747,6 +759,10 @@ public class GenericBinder implements Binder {
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return getAlert().toString();
|
||||
}
|
||||
|
||||
}
|
||||
static abstract class AbstractAlert implements Alert {
|
||||
|
||||
@@ -42,17 +42,18 @@ public class GenericFormatterRegistry implements FormatterRegistry {
|
||||
private Map<Class, AnnotationFormatterFactory> annotationFormatters = new HashMap<Class, AnnotationFormatterFactory>();
|
||||
|
||||
public Formatter<?> getFormatter(TypeDescriptor<?> propertyType) {
|
||||
Annotation[] annotations = propertyType.getAnnotations();
|
||||
for (Annotation a : annotations) {
|
||||
AnnotationFormatterFactory factory = annotationFormatters.get(a.annotationType());
|
||||
if (factory != null) {
|
||||
return factory.getFormatter(a);
|
||||
}
|
||||
}
|
||||
Formatter<?> formatter = typeFormatters.get(propertyType.getType());
|
||||
if (formatter != null) {
|
||||
return formatter;
|
||||
} else {
|
||||
Annotation[] annotations = propertyType.getAnnotations();
|
||||
for (Annotation a : annotations) {
|
||||
AnnotationFormatterFactory factory = annotationFormatters.get(a.annotationType());
|
||||
if (factory != null) {
|
||||
return factory.getFormatter(a);
|
||||
}
|
||||
}
|
||||
// TODO check class-level @Formatted annotation
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,6 +17,7 @@ import junit.framework.Assert;
|
||||
|
||||
import org.junit.After;
|
||||
import org.junit.Before;
|
||||
import org.junit.Ignore;
|
||||
import org.junit.Test;
|
||||
import org.springframework.context.i18n.LocaleContextHolder;
|
||||
import org.springframework.ui.binding.Binding;
|
||||
@@ -223,6 +224,21 @@ public class GenericBinderTests {
|
||||
assertTrue(result.isFailure());
|
||||
assertEquals("conversionFailed", result.getAlert().getCode());
|
||||
}
|
||||
|
||||
@Test
|
||||
@Ignore
|
||||
public void bindToList() {
|
||||
binder.addBinding("addresses");
|
||||
Map<String, String> values = new LinkedHashMap<String, String>();
|
||||
values.put("addresses[0]", "4655 Macy Lane, Melbourne FL 35452");
|
||||
values.put("addresses[1]", "1234 Rostock Circle, Palm Bay FL 32901");
|
||||
values.put("addresses[5]", "1977 Bel Aire Estates, Coker AL 12345");
|
||||
BindingResults results = binder.bind(values);
|
||||
assertEquals(3, results.size());
|
||||
System.out.println(results);
|
||||
Assert.assertEquals(6, bean.addresses.size());
|
||||
Assert.assertEquals("Palm Bay", bean.addresses.get(1).city);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void bindHandleNullValueInNestedPath() {
|
||||
|
||||
Reference in New Issue
Block a user