The following table summarizes all operators used by the JSP Expression Language (EL):

Category

Operators

Variable

.and []

Arithmetic

+,-(binary), *, / and div, %and mod,-(unary)

Logical

and, &&, or,||,not,!

Relational

==, eq, !=, ne, <, lt, >, gt, <=, le, >=, ge

Conditional

A ? B : C

Empty/Null checking

empty

Let’s see each operator in details with usage examples.

 

1. Variable Operators

In EL, the dot (.) operator is used to access properties of a JavaBean object or get value of a key in a Map object. Syntax is:

${objectName.propertyName}

${mapObject.keyName}

 

For example:

    • Access the parameter named “username” in the URL query string (paramis an implicit map object that stores request parameters):

${param.username}

    • Retrieve hostname of client which is stored in HTTP request headers (header is an implicit map object that stores request headers):

${header.host}

    • Read the property called email of a JavaBean object named userBean:

${userBean.email}

The [] operator does same thing as the . operator, however, it can be also used to access elements of an array or a list by specifying an index. For example:

    • The above examples can be re-written as follows:

${param["username"]}

${header["host"]}

${userBean["email"]}

    • Retrieve value of the 2nd element in an array named jobTitles:

${jobTitles["1"]}

    • Access email of the 2nd user in a list of users:

${listUsers[1].email}

It’s also possible to access nested property like this:

${userBean.currentJob.title}

 

2. Arithmetic Operators

The following table describes all the arithmetic operators as well as examples:

Operator

Meaning

EL Expression Example

Result

+

Addition

${100 + 200}

300

- (binary)

Subtraction

${100 - 200}

-100

*

Multiplication

${9 * 9}

81

/ or div

Division

${200 / 100}

${200 div 100}

${200 / 0}

2.0

2.0

Infinity

% or mod

Remainder

${2013 % 100}

${2013 mod 100}

${200 mod 0}

13

13

Exception

- (unary)

Negation

${-20}

${20 - (-20)}

-20

40

Note that while the division operator can divide by zero, the remainder operator not. If we try this:

${200 mod 0}

Then this exception will be thrown:

java.lang.ArithmeticException: / by zero

Also note that in an arithmetic expression, a null is treated as zero. For example in the following expression:

${user.age + 50}

If the variable user or age evaluates to null, then result of the expression is 50.

 

3. Logical Operators

The following table describes the logical operators along with examples:

Operator

Meaning

EL Expression Example

Result

and, &&

Logical AND

${true && false}

${false and false)

false

false

or, ||

Logical OR

${true || false}

${false or false}

true

false

not, !

Unary boolean complement

${!false}

${!true}

true

false

Note that in a logical expression, a null is treated as false. Consider the following example:

${user.logged && true}

If the variable user or logged evaluates to null, then result of the expression is false.

 

4. Relational Operators

The following table describes the relational operators as well as examples:

Operator

Meaning

EL Expression Example

Result

==, eq

Equality test

${100 == 100}

${101 eq 102}

true

false

!=, ne

Un-equality test

${100 != 200}

${200 ne 200}

true

false

<, lt

Less than test

${9 < 10}

${9 lt 8}

true

false

>, gt

Greater then test

${10 > 9}

${10 gt 20}

true

false

<=, le

less than or equal test

${100 <= 200}

${100 le 100}

true

true

>=, ge

greater than or equal test

${100 >= 200}

${100 ge 100}

false

true

Note that there is no = operator in EL.

 

5. Conditional Operators

The conditional operators ? and : must participate in this ternary form:

A ? B : C

If A evaluates to true, then evaluate B, else evaluate C. For example:

${(8 + 9) > 10 ? (11 + 12) : (13 + 14) }

Result: 23

 

6. Empty Operator

The empty operator checks a value is null or empty. Syntax:

${empty value}

It returns true if value is null or empty, and returns false otherwise. For example:

${empty param.username}

The above expression returns true if the parameter username is null or a empty String. Another example:

${empty listUsers}

The variable listUsers is an ArrayList, the expression returns true if the list has no element (empty).

 

7. Operators Precedence

Following is the precedence of operators, with priority descends from top to bottom and from left to right in a row:

    • [] .
    • ()
    • - (unary) not ! empty
    • * / div % mod
    • + - (binary)
    • < > <= >= lt gt le ge
    • == != eq ne
    • && and
    • || or
    • ? :

Examples:

EL Expression Example

Result

${2 * 4 + 3 * 4}

20

${8 + 10 / 5 - 3}

7

${5 > 3 && 4 > 6}

false

${1 + 2 > 3 ? 4 * 5 : 6 - 7}

-1

 

Other JSP Tutorials:


About the Author:

is certified Java programmer (SCJP and SCWCD). He began programming with Java back in the days of Java 1.4 and has been passionate about it ever since. You can connect with him on Facebook and watch his Java videos on YouTube.



Add comment

   


Comments 

#3santosh2017-01-17 03:55
Excellent explanation about the operators supported in JSP EL.
Quote
#2Nam2013-09-30 01:35
Sorry, I don't have such program, but using EL is pretty simple: Just putting the EL expressions into your JSP pages.
Quote
#1Adyasha2013-09-29 21:01
Hiii...
can u send some program using EL through Eclipse,& the process of deveoping the application
Quote