forgot to commit type descriptor
This commit is contained in:
parent
2bbf827d57
commit
90bafe35cb
|
|
@ -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 {
|
||||
|
|
@ -673,6 +681,10 @@ public class GenericBinder implements Binder {
|
|||
};
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return getAlert().toString();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class EvaluationError implements BindingResult {
|
||||
|
|
@ -748,6 +760,10 @@ public class GenericBinder implements Binder {
|
|||
};
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return getAlert().toString();
|
||||
}
|
||||
|
||||
}
|
||||
static abstract class AbstractAlert implements Alert {
|
||||
public String toString() {
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
@ -224,6 +225,21 @@ public class GenericBinderTests {
|
|||
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() {
|
||||
binder.addBinding("addresses.street");
|
||||
|
|
|
|||
|
|
@ -191,7 +191,7 @@ public class TypeDescriptor<T> {
|
|||
} else if (methodParameter != null) {
|
||||
return methodParameter.getMethod().getAnnotations();
|
||||
} else {
|
||||
return null;
|
||||
return new Annotation[0];
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue