How can I check what version of EL is server using

2019-01-06 16:55发布

问题:

How can I check what version of EL is server using . I am running Websphere 7 . EL classes are in j2ee.jar and manifest is below.

Manifest-Version: 1.0
Ant-Version: Apache Ant 1.6.5
Created-By: 2.4 (IBM Corporation)
Specification-Title: Java Platform, Enterprise Edition Specification
Specification-Version: 5.0
Specification-Vendor: Sun Microsystems, Inc.
Implementation-Title: Java Platform, Enterprise Edition Specification
Implementation-Version: 5.0
Implementation-Vendor: Sun Microsystems, Inc.
Class-Path: activation-impl.jar mail-impl.jar

回答1:

EL version goes hand in hand with Servlet/JSP version which is dependent on the servletcontainer implementation/version used and also on the web.xml root declaration of your webapp.

  • Servlet 3.1 comes with JSP 2.3 and EL 3.0.
  • Servlet 3.0 comes with JSP/EL 2.2.
  • Servlet 2.5 comes with JSP/EL 2.1.
  • Servlet 2.4 comes with JSP/EL 2.0.
  • Servlet 2.3 comes with JSP 1.2 without EL. EL is to be provided by JSTL 1.0 and works in JSTL tags only.

WebSphere 7 is a Java EE 5 certified container which thus implies Servlet 2.5 which in turn thus comes with JSP/EL 2.1. However, if the web.xml of your webapp is declared conform for example Servlet 2.4, then your webapp will run in Servlet 2.4 modus with JSP/EL 2.0.

Since you tagged this JSF, I guess that the sole purpose of this question is to figure out if you could use the new EL 2.2 feature of being able to invoke non-getter methods with arguments in EL. That's thus not natively supported by your container. However, you could install JBoss EL as per this answer to get it to work on Servlet 2.5 containers.

See also:

  • Difference between JSP EL, JSF EL and Unified EL


标签: jsf java-ee el