master
Keith Donald 16 years ago
parent a696d78bd1
commit 0a0b10b2ff
  1. 7
      org.springframework.context/src/main/java/org/springframework/ui/binding/Binder.java
  2. 11
      org.springframework.context/src/test/java/org/springframework/ui/binding/BinderTests.java

@ -120,10 +120,11 @@ public class Binder<T> {
.entrySet()) {
Binding binding = getBinding(entry.getKey());
Object value = entry.getValue();
if (value instanceof String[]) {
binding.setValues((String[])value);
} else if (value instanceof String) {
if (value instanceof String) {
binding.setValue((String)entry.getValue());
}
else if (value instanceof String[]) {
binding.setValues((String[])value);
} else {
throw new IllegalArgumentException("Illegal argument " + value);
}

@ -23,6 +23,7 @@ import org.junit.Test;
import org.springframework.context.i18n.LocaleContextHolder;
import org.springframework.ui.format.DateFormatter;
import org.springframework.ui.format.number.CurrencyFormatter;
import org.springframework.ui.format.number.IntegerFormatter;
public class BinderTests {
@ -135,6 +136,16 @@ public class BinderTests {
assertEquals("$23.56", b.getValue());
}
@Test
public void getBindingCustomFormatterRequiringTypeCoersion() {
Binder<TestBean> binder = new Binder<TestBean>(new TestBean());
// IntegerFormatter formats Longs, so conversion from Integer -> Long is performed
binder.add(new BindingConfiguration("integer", new IntegerFormatter()));
Binding b = binder.getBinding("integer");
b.setValue("2,300");
assertEquals("2,300", b.getValue());
}
@Test
public void getBindingMultiValued() {
Binder<TestBean> binder = new Binder<TestBean>(new TestBean());

Loading…
Cancel
Save