Add suffix dot on prefix only if necessary

Closes gh-3787
This commit is contained in:
Stephane Nicoll
2015-08-20 10:43:12 +02:00
parent 1466169dc0
commit 53251a9f9c
2 changed files with 16 additions and 1 deletions

View File

@@ -45,6 +45,7 @@ import org.springframework.validation.DataBinder;
*
* @author Dave Syer
* @author Phillip Webb
* @author Stephane Nicoll
* @see RelaxedNames
*/
public class RelaxedDataBinder extends DataBinder {
@@ -73,7 +74,14 @@ public class RelaxedDataBinder extends DataBinder {
public RelaxedDataBinder(Object target, String namePrefix) {
super(wrapTarget(target), (StringUtils.hasLength(namePrefix) ? namePrefix
: DEFAULT_OBJECT_NAME));
this.namePrefix = (StringUtils.hasLength(namePrefix) ? namePrefix + "." : null);
this.namePrefix = cleanNamePrefix(namePrefix);
}
private static String cleanNamePrefix(String namePrefix) {
if (!StringUtils.hasLength(namePrefix)) {
return null;
}
return (namePrefix.endsWith(".") ? namePrefix : namePrefix + ".");
}
/**

View File

@@ -95,6 +95,13 @@ public class RelaxedDataBinderTests {
assertEquals("bar", target.getFoo());
}
@Test
public void testBindStringWithPrefixDotSuffix() throws Exception {
VanillaTarget target = new VanillaTarget();
bind(target, "some.test.foo: bar", "some.test.");
assertEquals("bar", target.getFoo());
}
@Test
public void testBindFromEnvironmentStyleWithPrefix() throws Exception {
VanillaTarget target = new VanillaTarget();