EL handles null values gracefully

A key design decision the developers of EL came up with is to handle null values without throwing exceptions. Why? Because they figured “it’s better to show a partial, incomplete page than to show the user an error page.”

Assume that there is not an attribute named “foo”, but there IS an attribute named “bar”, but that “bar” does not have a property or key named “foo”.

EL

What prints

${foo}

Note

Nothing prints out for these expressions. If you say “The value is: ${foo}.” You’ll just see “The value is.”

${foo[bar]}

${bar[foo]}

${foo.bar}

${7 + foo}

7

${7 / foo}

Infinity

${7 - foo}

7

${7 % foo}

Exception is thrown

${7 < foo}

false

${7 == foo}

false

${foo == foo}

true

${7 != foo}

true

${true and foo}

false

${true or foo}

true

${not foo}

true

Note

In arithmetic expressions, EL treats the unknown variable as “zero”.

Note

In logical expressions, EL treats the unknown variable as “false”.

EL is null-friendly. It handles unknown or null values so that the page still displays, even if it can’t find an attribute/property/key with the name in the expression.

In arithmetic, EL treats the null value as “zero”.

In logical expressions, EL treats the null value as “false”.

Get Head First Servlets and JSP, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.