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