Add support for placeholders in @RequestMapping

@RequestMapping annotations now support ${...} placeholders.

Issue: SPR-9935
This commit is contained in:
Rossen Stoyanchev
2013-01-07 18:03:40 -05:00
parent 15c0971381
commit 7bc9667913
4 changed files with 61 additions and 5 deletions

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2012 the original author or authors.
* Copyright 2002-2013 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -24,6 +24,7 @@ import java.util.Map;
import org.junit.Before;
import org.junit.Test;
import org.springframework.http.MediaType;
import org.springframework.util.StringValueResolver;
import org.springframework.web.accept.ContentNegotiationManager;
import org.springframework.web.accept.PathExtensionContentNegotiationStrategy;
import org.springframework.web.context.support.StaticWebApplicationContext;
@@ -78,4 +79,18 @@ public class RequestMappingHandlerMappingTests {
this.handlerMapping.useSuffixPatternMatch());
}
@Test
public void resolveEmbeddedValuesInPatterns() {
this.handlerMapping.setEmbeddedValueResolver(new StringValueResolver() {
public String resolveStringValue(String value) {
return "/${pattern}/bar".equals(value) ? "/foo/bar" : value;
}
});
String[] patterns = new String[] { "/foo", "/${pattern}/bar" };
String[] result = this.handlerMapping.resolveEmbeddedValuesInPatterns(patterns);
assertArrayEquals(new String[] { "/foo", "/foo/bar" }, result);
}
}