Bug 39438

Summary: VariableResolver in PageContext is not used by JSTL core tags
Product: Taglibs Reporter: Liuyong Chen <lc66223>
Component: Standard TaglibAssignee: Tomcat Developers Mailing List <dev>
Status: RESOLVED WONTFIX    
Severity: enhancement    
Priority: P3    
Version: 1.1.0   
Target Milestone: ---   
Hardware: All   
OS: other   

Description Liuyong Chen 2006-04-27 23:53:11 UTC
As definded in javax.servlet.jsp.JspContext in J2EE 1.4, getVariableResolver()
is an abstract method and this provides an opportunity for a custom tag to use
the standard JSTL evaluation with a custom VariableResolver. But the standard
JSTL (standard-110_13) is not using the VariableResolver provided by
getVariableResolver() in the subclass of JspContext. 

In standard-110_13, when
org.apache.taglibs.standard.lang.support.ExpressionEvaluatorManager::evaluate()
is called, it delegates the call to
org.apache.taglibs.standard.lang.jstl.Evaluator::evaluate(). The
Evaluator::evaluate() then uses ELEvaluator::evaluate() to evaluate the
expression. But ELEvaluator is always constructed with JSTLVariableResolver and
ignores the VariableResolver in PageContext. As the API definition of JspContext
in J2EE 1.4, the getVariableResolver() is an abstract method and the custom tag
is allowed to provide the custom PagaContext and then the custom
VariableResolver. So the custom tag can still use the standard JSTL Evaluator
but with the custom VariableResolver. Is there any reason why the custom
VariableResolver in PageContext is not used in the standard JSTL ELEvaluator?
Comment 1 Henri Yandell 2007-03-14 16:40:57 UTC
As the Standard taglib is in maintenance mode, I'm marking this enhancement as
WONTFIX and passing it along to the Glassfish reference implementation:

https://glassfish.dev.java.net/issues/show_bug.cgi?id=2616