Created attachment 29898 [details] JasperELInterpreter implementation Jasper ELInterpreter Implementation Simple ELInterpreter. It can transfer simple ELs to java code directly. EL is a big bottleneck of JSP. EL resolving takes much CPU expense. The performance is better when simple ELs were transfered to java code. However the code will by pass all ELResolvers. This interpreter is not a standard of JSP specification. When activate this ELInterpreter. User must know how it works. Here are the cases of Simple ELs, 1.Simple EL, only contains one part of expression, for example ${elemId}. This kind of EL will be generated as this.getJspContext().findAttribute("elemId") 2.EL with two parts of expression and type of first part is specified by attribute in Tag File. For example, ${model.location} . "model" is specified on the top of tag file, <%@ attribute name="model" required="true" type="org.apache.jasper.model.results.ItemModel" %>. It is generated as (getModel() != null ? getModel().getLocation() : null) 3.EL with logic or arithmetic and the value part can be generated. For example: ${(intlExpansion eq 'true' && not empty model.location) || sortType==7} It is generated as (org.apache.jasper.runtime.ELRuntimeUtil.equals(getIntlExpansion(), "true")&&(!org.apache.jasper.runtime.ELRuntimeUtil.isEmpty((getModel() != null ? getModel().getLocation() : null)))) How to apply this ELInterpreter? It is based on BUG 54239.
Created attachment 29899 [details] EL code generation
Created attachment 29900 [details] ELRuntime Utility for JasperELInterpreter
Created attachment 29901 [details] Test case for JasperELInterpreter
Created attachment 29902 [details] Comparison testing from our site
Created attachment 29907 [details] Make id as public
Marking as an enhancement
I'm +0 to include this in trunk. What do other committers think?
No-one else has spoken up since I asked the question so I am going to resolve this as WONTFIX.