14.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 14.5: el.jsp
${10 mod 4} == 2
${(10*10) ne 100} == false
${"tutego" == 'tutego'} == true
Das 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" %>
14.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 als |
>=, ge |
größer gleich als |
&&, and |
logisches Und |
||, or |
logisches Oder |
!, not |
Boolean-Komplement |
a ? b : c |
Bedingungsoperator |
empty |
Testet, ob ein Wert null oder leer ist. |
14.4.2 Literale
Wie die Programmiersprache Java definiert die JSP Expression Language Literale:
- Boolean: mit den Werten true und 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 in doppelten Anführungsstrichen steht. Es gibt keine Unterscheidung zwischen einzelnen Zeichen und Zeichenketten; die EL kennt nur Strings.
- Null: Null
14.4.3 Implizite EL-Objekte
Der Web-Container stellt einige vorinitialisierte Objekte bereit, auf die ein EL-Ausdruck zurückgreifen kann:
Listing 14.6: implicit.jsp
${pageContext.request.contextPath} <br/>
${header.host} <br/>
${pageContext.servletContext.servletContextName}
Die Ausgabe könnte sein:
localhost:8080
/web
2_16_JSP_Servlets
Eine ganze Reihe von impliziten EL-Objekten arbeitet als Assoziativspeicher.
EL-Objekt | Funktion |
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 der Startpunkt für Unterelemente:
pageContext | Funktion |
servletContext |
Repräsentiert den ServletContext. |
session |
Steht für die aktuelle HttpSession. |
request |
ServletRequest der Anfrage |
response |
ServletResponse des Ergebnisses |
Außerdem verwalten vier implizite Objekte, pageScope, requestScope, sessionScope und applicationScope, Objekte in einem der vier Gültigkeitsbereiche.
Ihr Kommentar
Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.