After upgrading to Spring Boot 3.4.0 (So Spring Framework 6.2.0) I noticed that for example, the following code on a JSP page throws an error: <spring:eval expression="pageContext.toString()"/>
, while the same code does work on previous Spring Framework versions, for example 6.1.15.
After digging into the EvalTag
code, I noticed that in the resolveImplicitVariable
method the arguments for the ELResolver#getValue
call are in the wrong order, thus causing the resolveImplicitVariable to always return null.
The signature for the method is:
public abstract Object getValue(ELContext context, Object base, Object property);
So I suppose the name
parameter passed to resolveImplicitVariable
should correspond to the property
, not the base
?
I could also try to provide a PR for this
Comment From: sbrannen
Thanks for bringing this to our attention. 👍
Closing as:
- superseded by #33945