JSP Expression Language
JSP Expression Language (EL), so dass Zugriff auf Daten in einem JavaBean gespeichert wird sehr einfach. JSP EL kann entweder verwendet werden, um einen arithmetischen Ausdruck zu erzeugen kann auch einen logischen Ausdruck zu erstellen verwendet werden. In JSP EL Ausdrücke ganze Zahl verwenden können, Fließkommazahlen, Strings, Konstanten wahr, falsch, es ist null.
Eine einfache Syntax
Normalerweise, wenn Sie benötigen einen Eigenschaftswert angeben, wenn die JSP-Tags, verwenden Sie einfach die Zeichenfolge:
<jsp:setProperty name="box" property="perimeter" value="100"/>
JSP EL-Ausdruck ermöglicht es Ihnen, einen Eigenschaftswert angeben. Ein einfacher Ausdruck Syntax lautet wie folgt:
${expr}
Worin bezieht sich ausdr auf den Ausdruck. In der JSP-EL generic Operator "." Und: "[]." Diese beiden Operatoren erlauben es, eine Vielzahl von Embedded-JSP JavaBean Eigenschaften durch das Objekt zuzugreifen.
Zum Beispiel kann die oben <jsp: setProperty> Tag geschrieben werden können, die Expression Sprache wie folgt:
<jsp:setProperty name="box" property="perimeter" value="${2*box.width+2*box.height}"/>
Wenn der JSP-Compiler die "$ {}" nach dem Format, um zu sehen, erzeugt er Code, um den Ausdruck auszuwerten, und erzeugt einen Ersatz der Wert des Ausdrucks in der Eigenschaft zu ersetzen.
Sie können auch die Ausdruckssprache in der Vorlage Text Registerkarte verwenden. Zum Beispiel: <jsp: text> Tag einfach in den Textkörper JSP Ausgabe eingefügt:
<jsp:text> <h1>Hello JSP!</h1> </jsp:text>
Nun, in: mit dem Ausdruck <jsp text> Tag im Körper, wie folgt aus:
<jsp:text> Box Perimeter is: ${2*box.width + 2*box.height} </jsp:text>
EL Ausdrücke in Klammern können verwendet werden, Unterausdruck zu organisieren. Beispielsweise $ {(1 + 2) * 3 gleich 9}, aber $ {1 + (2 * 3)} = 7.
Möchten Auswertung von EL Ausdrücke zu deaktivieren, dann müssen Sie die Seite Richtlinie isELIgnored Attribut auf true zu verwenden:
<%@ page isELIgnored ="true|false" %>
Somit werden EL Ausdrücke ignoriert. Wenn auf false gesetzt ist, wird der Behälter berechnet Ausdrücke EL werden.
EL zugrunde liegenden Operator
EL Ausdruck Unterstützung von den meisten Java arithmetische und logische Operatoren zur Verfügung gestellt:
Die Betreiber | Beschreibung |
---|---|
. | Bean Zugriff auf eine Eigenschaft oder ein Mapping-Eintrag |
[] | Zugriff auf ein Array oder eine Liste von Elementen |
() | Organisieren Sie ein Unterausdruck die Priorität zu ändern |
+ | plus |
- | Speichern oder negativ |
* | Multiplizieren |
/ Oder div | außer |
% Oder mod | modulo |
== Oder eq | Test für die Gleichstellung |
! = Oder ne | Testen Sie, ob ungleiche |
<Oder lt | Prüfen Sie, ob weniger als |
> Oder gt | Der Test ist größer als |
<= Or le | Prüfen Sie, ob kleiner oder gleich |
> = Oder ge | Testen, ob mehr als oder gleich |
&& Oder und | Test-Logik und |
|| Oder oder | Test-Logik oder |
! Oder auch nicht | Test negiert |
leer | Testen Sie, ob null |
Die JSP-EL-Funktion
JSP EL-Funktion ermöglicht es Ihnen, in Ausdrücke zu verwenden. Diese Funktionen müssen in einem benutzerdefinierten Tag-Bibliothek definiert werden. Verwenden Sie die Funktion Syntax lautet wie folgt:
${ns:func(param1, param2, ...)}
ns bezieht sich auf einen Namensraum (Namespace), Func ist der Name der Funktion, bezieht sich param1 auf das erste Argument bezieht sich param2 auf das zweite Argument, und so weiter. Zum Beispiel gibt es eine Funktion fn: Länge, in JSTL-Bibliothek definiert ist, kann so sein, die Länge einer Zeichenfolge zu erhalten:
${fn:length("Get my length")}
Um eine der Tag-Library-Funktionen verwenden, werden Sie diese Bibliotheken auf dem Server installiert sein, und verwenden Sie dann die <taglib> Tag der Bibliotheken in der JSP-Datei enthält.
JSP EL implizite Objekte
Unterstützt JSP EL sind implizite Objekte in der folgenden Tabelle aufgeführt:
versteckte Objekte | Beschreibung |
---|---|
Printer Management Utility | Scope Seite |
request | Anfrage Anwendungsbereich |
sessionScope | Sitzungsbereich |
applicationScope | Anwendungsbereich |
param | Request-Objekt Parameter-String |
ParamValues | Parameter-Request-Objekt, string Sammlung |
Kopfzeile | HTTP-Header-String |
headerValues | HTTP-Header, String-Sammlung |
initParam | Kontext-Initialisierungsparameter |
Plätzchen | Cookie-Wert |
pagecontext | Aktuelle Seite pagecontext |
Sie können diese Objekte in einem Ausdruck, wie unter Verwendung der gleichen Variable verwenden. Als nächstes werden einige Beispiele geben, um dieses Konzept besser zu verstehen.
pagecontext Objekte
pagecontext Objekt ist ein Verweis auf die JSP pagecontext-Objekt. Mit pagecontext-Objekt können Sie das Anfrage-Objekt zugreifen. Zum Beispiel das Request-Objekt in der Abfrage-String übergeben zugreifen zu können, wie folgt aus:
${pageContext.request.queryString}
Scope-Objekte
Scope, request, sessionScope wird applicationScope variable Daten verwendet in jeder variable Scoping Ebenen gespeichert sind.
Zum Beispiel, wenn Sie explizit müssen Box applicationScope variable Schicht zugreifen kann zugegriffen werden: applicationScope.box.
param und ParamValues Objekte
param und ParamValues Objekt wird verwendet, die Parameterwerte für den Zugriff durch die Verfahren und request.getParameterValues request.getParameter Methode.
Zum Beispiel, den Zugang zu einem benannten Ordnungsparameter, können Sie diesen Ausdruck verwenden: $ {param.order} oder {$ param [ "Ordnung"]}.
Die folgenden Beispiele zeigen, wie Sie den Benutzernamen Anforderungsparameter zuzugreifen:
<%@ page import="java.io.*,java.util.*" %> <% String title = "Accessing Request Param"; %> <html> <head> <title><% out.print(title); %></title> </head> <body> <center> <h1><% out.print(title); %></h1> </center> <div align="center"> <p>${param["username"]}</p> </div> </body> </html>
param Objekt gibt eine einzelne Zeichenfolge, wird ParamValues Objekt ein String-Array zurückgegeben.
Kopfobjekte und headerValues
Header und headerValues Objekt wird verwendet, um die Header-Informationen zuzugreifen, indem die Methoden und request.getHeaders request.getHeader Methode.
Zum Beispiel, auf Informationen zuzugreifen, eine so genannte User-Agent-Header, können Sie diesen Ausdruck verwenden: $ {header.user-agent} oder $ {header [ "user-agent"]}.
Die folgenden Beispiele zeigen, wie die User-Agent-Header zuzugreifen:
<%@ page import="java.io.*,java.util.*" %> <% String title = "User Agent Example"; %> <html> <head> <title><% out.print(title); %></title> </head> <body> <center> <h1><% out.print(title); %></h1> </center> <div align="center"> <p>${header["user-agent"]}</p> </div> </body> </html>
Ergebnisse sind wie folgt:
Header-Objekt gibt einen einzelnen Wert, während headerValues ein Array von Strings zurück.