O'Reilly logo

Head First Servlets and JSP, 2nd Edition by Bert Bates, Bryan Basham, Kathy Sierra

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

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”.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required