19.4 Die Expression Language (EL) 

Seit JSP 2.0 lassen sich mit der Expression Language (EL) Ausdrücke schreiben, und es ist möglich, auf Geschäftsdaten zuzugreifen.
Listing 19.5 el.jsp
${10 mod 4} == 2
${(10*10) ne 100} == false
${"tutego" == 'tutego'} == trueDas Ergebnis des EL-Ausdrucks wird in die Seite geschrieben.
EL nicht verarbeiten
Um das Verarbeiten von EL-Ausdrücken für eine Seite zu unterbinden, ist folgende Zeile in die JSP aufzunehmen:
<jsp:directive.page isELIgnored="true" %>
19.4.1 Operatoren der EL 

Die EL kennt die bekannten Java-Operationen, fügt aber alternative Schreibweisen hinzu, sodass zum Beispiel statt ${12 / 3} auch ${12 div 3} gestattet ist.
| Operator | Beschreibung |
|
+, - |
Addition, Subtraktion |
|
* |
Multiplikation |
|
/, div |
Division |
|
%, mod |
Modulo (Rest) |
|
==, eq |
Gleichheit |
|
!=, ne |
Ungleichheit |
|
<, lt |
Kleiner als |
|
>, gt |
Größer als |
|
<=, le |
Kleiner gleich |
|
>=, ge |
Größer als |
|
&&, and |
Logisches Und |
|
||, or |
Logisches Oder |
|
!, not |
Boolean Komplement |
|
a ? b : c |
Bedingungsoperator |
|
empty |
Testet, ob ein Wert null oder leer ist |
19.4.2 Literale 

Wie die Programmiersprache Java definiert die JSP-Expression Language Literale:
- Boolean. Mit den Werten true and false.
- Ganzzahlen. Wie in Java etwa 24, –45, 567.
- Fließkommazahlen. Auch wie in Java, etwa –1.8E-45, 4.567.
- String. Zeichenkette, die entweder in einfachen oder doppelten Anführungsstrichen steht. Es gibt keine Unterscheidung zwischen einzelnen Zeichen und Zeichenketten. Die EL kennt nur Strings.
- Null. Null.
19.4.3 Implizite EL-Objekte 

Der Web-Container stellt einige vorinitialisierte Objekte bereit, auf die ein EL-Ausdruck zurückgreifen kann.
Listing 19.6 implicit.jsp
${pageContext.request.contextPath} <br/>
${header["host"]} <br/>
${pageContext.servletContext.servletContextName}Die Ausgabe könnte sein:
localhost:8080 /web 18_JSPServlets
Eine ganze Reihe von impliziten EL-Objekten arbeitet als Assoziativspeicher.
|
param |
Request-Parameter |
|
paramValues |
Parameter-Namen und Werte im Feld |
|
header |
Header-Namen |
|
headerValues |
Header-Namen und Belegungen im Feld |
|
cookie |
Cookie-Name mit Cookie-Objekt |
|
initParam |
Parameter aus Kontext-Initialisierung |
Das implizite Objekt pageContext (keine Map) ist Start für Unterelemente:
|
ServletContext |
Repräsentiert den ServletContext |
|
Session |
Steht für die aktuelle HttpSession |
|
Request |
ServletRequest der Anfrage |
|
Response |
ServletResponse des Ergebnisses |
Weiterhin verwalten vier implizite Objekte pageScope, requestScope, sessionScope und applicationScope Objekte in einem der vier Gültigkeitsbereiche.



