diff --git a/spring-web/src/main/java/org/springframework/web/util/ExpressionEvaluationUtils.java b/spring-web/src/main/java/org/springframework/web/util/ExpressionEvaluationUtils.java index da95b6bc91b..46f78f10755 100644 --- a/spring-web/src/main/java/org/springframework/web/util/ExpressionEvaluationUtils.java +++ b/spring-web/src/main/java/org/springframework/web/util/ExpressionEvaluationUtils.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2011 the original author or authors. + * Copyright 2002-2012 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. @@ -39,7 +39,10 @@ import org.springframework.util.Assert; * @author Alef Arendsen * @since 11.07.2003 * @see javax.servlet.jsp.el.ExpressionEvaluator#evaluate + * @deprecated as of Spring 3.2, in favor of the JSP 2.0+ native support + * for embedded expressions in JSP pages (also applying to tag attributes) */ +@Deprecated public abstract class ExpressionEvaluationUtils { /** @@ -64,13 +67,9 @@ public abstract class ExpressionEvaluationUtils { * containers with web applications declaring Servlet 2.4 or higher in their * web.xml. For backwards compatibility, Spring's expression support * will remain active for applications declaring Servlet 2.3 or earlier. However, - * on Servlet 2.4/2.5 containers, we can't find out what the application has declared, - * so we'll also fall back to keeping expression support active in such a case. - *

Recommendations: Explicitly set "springJspExpressionSupport" to "false" - * in order to prevent double evaluation for Servlet 2.4+ based applications. - * On Servlet 3.0 containers, this will be done for you by default by the framework. - * If for some reason you nevertheless want Spring's JSP expression support to be - * active, explicitly set the "springJspExpressionSupport" context-param to "true". + * on Servlet 2.4/2.5 containers, we can't find out what the application has declared; + * as of Spring 3.2, we won't activate Spring's expression support at all then since + * it got deprecated and will be removed in the next iteration of the framework. * @param pageContext current JSP PageContext * @return true if active (ExpressionEvaluationUtils will actually evaluate expressions); * false if not active (ExpressionEvaluationUtils will return given values as-is, @@ -84,13 +83,13 @@ public abstract class ExpressionEvaluationUtils { } if (sc.getMajorVersion() >= 3) { // We're on a Servlet 3.0+ container: Let's check what the application declares... - if (sc.getEffectiveMajorVersion() > 2 || sc.getEffectiveMinorVersion() > 3) { - // Application declares Servlet 2.4+ in its web.xml: JSP 2.0 expressions active. - // Skip our own expression support in order to prevent double evaluation. - return false; + if (sc.getEffectiveMajorVersion() == 2 && sc.getEffectiveMinorVersion() < 4) { + // Application declares Servlet 2.3- in its web.xml: JSP 2.0 expressions not active. + // Activate our own expression support. + return true; } } - return true; + return false; } /**