Skip to content

Commit 34f7402

Browse files
committed
Merge branch '6.2.x'
2 parents 65553f5 + 3d0fffa commit 34f7402

File tree

2 files changed

+26
-2
lines changed

2 files changed

+26
-2
lines changed

spring-webmvc/src/main/java/org/springframework/web/servlet/tags/EvalTag.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,7 @@ private Object resolveImplicitVariable(String name) throws AccessException {
259259
return null;
260260
}
261261
try {
262-
return this.elContext.getELResolver().getValue(this.elContext, name, null);
262+
return this.elContext.getELResolver().getValue(this.elContext, null, name);
263263
}
264264
catch (Exception ex) {
265265
throw new AccessException(

spring-webmvc/src/test/java/org/springframework/web/servlet/tags/EvalTagTests.java

+25-1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121
import java.util.Locale;
2222
import java.util.Map;
2323

24+
import jakarta.el.ELContext;
25+
import jakarta.el.ELResolver;
2426
import jakarta.servlet.jsp.tagext.Tag;
2527
import org.junit.jupiter.api.AfterEach;
2628
import org.junit.jupiter.api.BeforeEach;
@@ -37,6 +39,12 @@
3739
import org.springframework.web.testfixture.servlet.MockPageContext;
3840

3941
import static org.assertj.core.api.Assertions.assertThat;
42+
import static org.mockito.ArgumentMatchers.eq;
43+
import static org.mockito.ArgumentMatchers.isNull;
44+
import static org.mockito.ArgumentMatchers.same;
45+
import static org.mockito.BDDMockito.given;
46+
import static org.mockito.Mockito.mock;
47+
import static org.mockito.Mockito.spy;
4048

4149
/**
4250
* @author Keith Donald
@@ -52,11 +60,18 @@ class EvalTagTests extends AbstractTagTests {
5260
void setup() {
5361
LocaleContextHolder.setDefaultLocale(Locale.UK);
5462

55-
context = createPageContext();
63+
context = spy(createPageContext());
64+
ELContext elContext = mock();
65+
ELResolver elResolver = mock();
66+
given(elResolver.getValue(same(elContext), isNull(), eq("pageContext"))).willReturn(context);
67+
given(elContext.getELResolver()).willReturn(elResolver);
68+
given(context.getELContext()).willReturn(elContext);
69+
5670
FormattingConversionServiceFactoryBean factory = new FormattingConversionServiceFactoryBean();
5771
factory.afterPropertiesSet();
5872
context.getRequest().setAttribute("org.springframework.core.convert.ConversionService", factory.getObject());
5973
context.getRequest().setAttribute("bean", new Bean());
74+
6075
tag = new EvalTag();
6176
tag.setPageContext(context);
6277
}
@@ -181,6 +196,15 @@ void mapAccess() throws Exception {
181196
assertThat(((MockHttpServletResponse) context.getResponse()).getContentAsString()).isEqualTo("value");
182197
}
183198

199+
@Test
200+
void resolveImplicitVariable() throws Exception {
201+
tag.setExpression("pageContext.getClass().getSimpleName()");
202+
int action = tag.doStartTag();
203+
assertThat(action).isEqualTo(Tag.EVAL_BODY_INCLUDE);
204+
action = tag.doEndTag();
205+
assertThat(action).isEqualTo(Tag.EVAL_PAGE);
206+
assertThat(((MockHttpServletResponse) context.getResponse()).getContentAsString()).isEqualTo("MockPageContext");
207+
}
184208

185209

186210
public static class Bean {

0 commit comments

Comments
 (0)