private RelaxedDataBinder getBinder(Object target, String namePrefix) { RelaxedDataBinder binder = new RelaxedDataBinder(target, namePrefix); binder.setIgnoreUnknownFields(false); LocalValidatorFactoryBean validatorFactoryBean = new LocalValidatorFactoryBean(); validatorFactoryBean.afterPropertiesSet(); binder.setValidator(validatorFactoryBean); binder.setConversionService(this.conversionService); return binder; }
@Test public void testOnlyTopLevelFields() throws Exception { VanillaTarget target = new VanillaTarget(); RelaxedDataBinder binder = getBinder(target, null); binder.setIgnoreUnknownFields(false); binder.setIgnoreNestedProperties(true); BindingResult result = bind(binder, target, "foo: bar\n" + "value: 123\n" + "nested.bar: spam"); assertEquals(123, target.getValue()); assertEquals("bar", target.getFoo()); assertEquals(0, result.getErrorCount()); }
@Test public void testAllowedFields() throws Exception { VanillaTarget target = new VanillaTarget(); RelaxedDataBinder binder = getBinder(target, null); binder.setAllowedFields("foo"); binder.setIgnoreUnknownFields(false); BindingResult result = bind(binder, target, "foo: bar\n" + "value: 123\n" + "bar: spam"); assertEquals(0, target.getValue()); assertEquals("bar", target.getFoo()); assertEquals(0, result.getErrorCount()); }