Search code examples
jsfjakarta-eeel

How can I check what version of EL is server using


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

Solution

  • 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 6.1 comes with JSP 4.0 and EL 6.0 (Jakarta EE 11).
    • Servlet 6.0 comes with JSP 3.1 and EL 5.0 (Jakarta EE 10).
    • Servlet 5.0 comes with JSP 3.0 and EL 4.0 (Jakarta EE 9).
    • Servlet 4.0 comes with JSP 2.3 and EL 3.0 (Java EE 8).
    • Servlet 3.1 comes with JSP 2.3 and EL 3.0 (Java EE 7).
    • Servlet 3.0 comes with JSP 2.2 and EL 2.2 (Java EE 6).
    • Servlet 2.5 comes with JSP 2.1 and EL 2.1 (Java EE 5).
    • Servlet 2.4 comes with JSP 2.0 and EL 2.0 (J2EE 1.4).
    • Servlet 2.3 comes with JSP 1.2 without EL (J2EE 1.3). EL is to be provided by JSTL 1.0 and works inside JSTL tags only.

    In your specific case, 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: