https://issues.apache.org/bugzilla/show_bug.cgi?id=54499

            Bug ID: 54499
           Summary: Implementation of Extensible EL Interpreter
           Product: Tomcat 7
           Version: trunk
          Hardware: PC
                OS: All
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Jasper
          Assignee: dev@tomcat.apache.org
          Reporter: xs...@ebay.com
        Depends on: 54239
    Classification: Unclassified

Created attachment 29898
  --> https://issues.apache.org/bugzilla/attachment.cgi?id=29898&action=edit
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.

-- 
You are receiving this mail because:
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to