Skip to content

Commit 62ccc8d

Browse files
committed
Deprecated Spring's own JSP expression evaluation
Since web applications declaring a Servlet 2.3 web.xml become really rare now, we're finally deprecating Spring's own ExpressionEvaluationUtils class. As a consequence, we're also setting "springJspExpressionSupport" to false by default, avoiding the potential double EL evaluation problem on pre-Servlet-3.0 containers. Issue: SPR-5308
1 parent 5af1c84 commit 62ccc8d

File tree

1 file changed

+33
-12
lines changed

1 file changed

+33
-12
lines changed

spring-web/src/test/java/org/springframework/web/util/ExpressionEvaluationUtilsTests.java

Lines changed: 33 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2002-2011 the original author or authors.
2+
* Copyright 2002-2012 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -16,6 +16,7 @@
1616

1717
package org.springframework.web.util;
1818

19+
import javax.servlet.ServletContext;
1920
import javax.servlet.jsp.JspException;
2021
import javax.servlet.jsp.PageContext;
2122
import javax.servlet.jsp.el.ELException;
@@ -33,7 +34,7 @@
3334
import static org.junit.Assert.*;
3435

3536
/**
36-
* @author Aled Arendsen
37+
* @author Alef Arendsen
3738
* @author Juergen Hoeller
3839
* @since 16.09.2003
3940
*/
@@ -43,9 +44,9 @@ public class ExpressionEvaluationUtilsTests {
4344
public void testIsSpringJspExpressionSupportActive() {
4445
MockServletContext sc = new MockServletContext();
4546
PageContext pc = new MockPageContext(sc);
46-
assertTrue(ExpressionEvaluationUtils.isSpringJspExpressionSupportActive(pc));
47-
sc.addInitParameter("springJspExpressionSupport", "false");
4847
assertFalse(ExpressionEvaluationUtils.isSpringJspExpressionSupportActive(pc));
48+
sc.addInitParameter("springJspExpressionSupport", "true");
49+
assertTrue(ExpressionEvaluationUtils.isSpringJspExpressionSupportActive(pc));
4950
}
5051

5152
@Test
@@ -82,7 +83,9 @@ public void testIsExpressionLanguage() {
8283

8384
@Test
8485
public void testEvaluate() throws Exception {
85-
PageContext ctx = new MockPageContext();
86+
MockServletContext sc = new MockServletContext();
87+
sc.addInitParameter("springJspExpressionSupport", "true");
88+
MockPageContext ctx = new MockPageContext(sc);
8689
ctx.setAttribute("bla", "blie");
8790

8891
assertEquals("blie", ExpressionEvaluationUtils.evaluate("test", "${bla}", String.class, ctx));
@@ -99,7 +102,9 @@ public void testEvaluate() throws Exception {
99102

100103
@Test
101104
public void testEvaluateWithConcatenation() throws Exception {
102-
PageContext ctx = new MockPageContext();
105+
MockServletContext sc = new MockServletContext();
106+
sc.addInitParameter("springJspExpressionSupport", "true");
107+
MockPageContext ctx = new MockPageContext(sc);
103108
ctx.setAttribute("bla", "blie");
104109

105110
String expr = "text${bla}text${bla}text";
@@ -139,7 +144,9 @@ public void testEvaluateWithConcatenation() throws Exception {
139144

140145
@Test
141146
public void testEvaluateString() throws Exception {
142-
PageContext ctx = new MockPageContext();
147+
MockServletContext sc = new MockServletContext();
148+
sc.addInitParameter("springJspExpressionSupport", "true");
149+
MockPageContext ctx = new MockPageContext(sc);
143150
ctx.setAttribute("bla", "blie");
144151

145152
assertEquals("blie", ExpressionEvaluationUtils.evaluateString("test", "${bla}", ctx));
@@ -148,7 +155,9 @@ public void testEvaluateString() throws Exception {
148155

149156
@Test
150157
public void testEvaluateStringWithConcatenation() throws Exception {
151-
PageContext ctx = new MockPageContext();
158+
MockServletContext sc = new MockServletContext();
159+
sc.addInitParameter("springJspExpressionSupport", "true");
160+
MockPageContext ctx = new MockPageContext(sc);
152161
ctx.setAttribute("bla", "blie");
153162

154163
String expr = "text${bla}text${bla}text";
@@ -180,7 +189,9 @@ public void testEvaluateStringWithConcatenation() throws Exception {
180189

181190
@Test
182191
public void testEvaluateInteger() throws Exception {
183-
PageContext ctx = new MockPageContext();
192+
MockServletContext sc = new MockServletContext();
193+
sc.addInitParameter("springJspExpressionSupport", "true");
194+
MockPageContext ctx = new MockPageContext(sc);
184195
ctx.setAttribute("bla", new Integer(1));
185196

186197
assertEquals(1, ExpressionEvaluationUtils.evaluateInteger("test", "${bla}", ctx));
@@ -189,7 +200,9 @@ public void testEvaluateInteger() throws Exception {
189200

190201
@Test
191202
public void testEvaluateBoolean() throws Exception {
192-
PageContext ctx = new MockPageContext();
203+
MockServletContext sc = new MockServletContext();
204+
sc.addInitParameter("springJspExpressionSupport", "true");
205+
MockPageContext ctx = new MockPageContext(sc);
193206
ctx.setAttribute("bla", new Boolean(true));
194207

195208
assertTrue(ExpressionEvaluationUtils.evaluateBoolean("test", "${bla}", ctx));
@@ -198,7 +211,9 @@ public void testEvaluateBoolean() throws Exception {
198211

199212
@Test
200213
public void testRepeatedEvaluate() throws Exception {
201-
PageContext ctx = new CountingMockPageContext();
214+
MockServletContext sc = new MockServletContext();
215+
sc.addInitParameter("springJspExpressionSupport", "true");
216+
PageContext ctx = new CountingMockPageContext(sc);
202217
CountingMockExpressionEvaluator eval = (CountingMockExpressionEvaluator) ctx.getExpressionEvaluator();
203218
ctx.setAttribute("bla", "blie");
204219
ctx.setAttribute("blo", "blue");
@@ -218,7 +233,9 @@ public void testRepeatedEvaluate() throws Exception {
218233

219234
@Test
220235
public void testEvaluateWithComplexConcatenation() throws Exception {
221-
PageContext ctx = new CountingMockPageContext();
236+
MockServletContext sc = new MockServletContext();
237+
sc.addInitParameter("springJspExpressionSupport", "true");
238+
PageContext ctx = new CountingMockPageContext(sc);
222239
CountingMockExpressionEvaluator eval = (CountingMockExpressionEvaluator) ctx.getExpressionEvaluator();
223240
ctx.setAttribute("bla", "blie");
224241
ctx.setAttribute("blo", "blue");
@@ -247,6 +264,10 @@ public void testEvaluateWithComplexConcatenation() throws Exception {
247264

248265
private static class CountingMockPageContext extends MockPageContext {
249266

267+
public CountingMockPageContext(ServletContext servletContext) {
268+
super(servletContext);
269+
}
270+
250271
private ExpressionEvaluator eval = new CountingMockExpressionEvaluator(this);
251272

252273
public ExpressionEvaluator getExpressionEvaluator() {

0 commit comments

Comments
 (0)