Browse Source

Add suffix dot on prefix only if necessary

Closes gh-3787
pull/3793/head
Stephane Nicoll 11 years ago
parent
commit
53251a9f9c
  1. 10
      spring-boot/src/main/java/org/springframework/boot/bind/RelaxedDataBinder.java
  2. 7
      spring-boot/src/test/java/org/springframework/boot/bind/RelaxedDataBinderTests.java

10
spring-boot/src/main/java/org/springframework/boot/bind/RelaxedDataBinder.java

@ -45,6 +45,7 @@ import org.springframework.validation.DataBinder; @@ -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 { @@ -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 + ".");
}
/**

7
spring-boot/src/test/java/org/springframework/boot/bind/RelaxedDataBinderTests.java

@ -95,6 +95,13 @@ public class RelaxedDataBinderTests { @@ -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();

Loading…
Cancel
Save