@@ -51,7 +51,8 @@ public class RequestHeaderMethodArgumentResolverTests {
51
51
private MethodParameter paramNamedValueStringArray ;
52
52
private MethodParameter paramSystemProperty ;
53
53
private MethodParameter paramContextPath ;
54
- private MethodParameter paramResolvedName ;
54
+ private MethodParameter paramResolvedNameWithExpression ;
55
+ private MethodParameter paramResolvedNameWithPlaceholder ;
55
56
private MethodParameter paramNamedValueMap ;
56
57
57
58
private MockHttpServletRequest servletRequest ;
@@ -71,8 +72,9 @@ public void setUp() throws Exception {
71
72
paramNamedValueStringArray = new SynthesizingMethodParameter (method , 1 );
72
73
paramSystemProperty = new SynthesizingMethodParameter (method , 2 );
73
74
paramContextPath = new SynthesizingMethodParameter (method , 3 );
74
- paramResolvedName = new SynthesizingMethodParameter (method , 4 );
75
- paramNamedValueMap = new SynthesizingMethodParameter (method , 5 );
75
+ paramResolvedNameWithExpression = new SynthesizingMethodParameter (method , 4 );
76
+ paramResolvedNameWithPlaceholder = new SynthesizingMethodParameter (method , 5 );
77
+ paramNamedValueMap = new SynthesizingMethodParameter (method , 6 );
76
78
77
79
servletRequest = new MockHttpServletRequest ();
78
80
webRequest = new ServletWebRequest (servletRequest , new MockHttpServletResponse ());
@@ -135,13 +137,29 @@ public void resolveDefaultValueFromSystemProperty() throws Exception {
135
137
}
136
138
137
139
@ Test
138
- public void resolveNameFromSystemProperty () throws Exception {
140
+ public void resolveNameFromSystemPropertyThroughExpression () throws Exception {
139
141
String expected = "foo" ;
140
142
servletRequest .addHeader ("bar" , expected );
141
143
142
144
System .setProperty ("systemProperty" , "bar" );
143
145
try {
144
- Object result = resolver .resolveArgument (paramResolvedName , null , webRequest , null );
146
+ Object result = resolver .resolveArgument (paramResolvedNameWithExpression , null , webRequest , null );
147
+ assertTrue (result instanceof String );
148
+ assertEquals ("Invalid result" , expected , result );
149
+ }
150
+ finally {
151
+ System .clearProperty ("systemProperty" );
152
+ }
153
+ }
154
+
155
+ @ Test
156
+ public void resolveNameFromSystemPropertyThroughPlaceholder () throws Exception {
157
+ String expected = "foo" ;
158
+ servletRequest .addHeader ("bar" , expected );
159
+
160
+ System .setProperty ("systemProperty" , "bar" );
161
+ try {
162
+ Object result = resolver .resolveArgument (paramResolvedNameWithPlaceholder , null , webRequest , null );
145
163
assertTrue (result instanceof String );
146
164
assertEquals ("Invalid result" , expected , result );
147
165
}
@@ -171,6 +189,7 @@ public void params(
171
189
@ RequestHeader (name = "name" , defaultValue ="#{systemProperties.systemProperty}" ) String param3 ,
172
190
@ RequestHeader (name = "name" , defaultValue ="#{request.contextPath}" ) String param4 ,
173
191
@ RequestHeader ("#{systemProperties.systemProperty}" ) String param5 ,
192
+ @ RequestHeader ("${systemProperty}" ) String param6 ,
174
193
@ RequestHeader ("name" ) Map <?, ?> unsupported ) {
175
194
}
176
195
0 commit comments