Latest web development tutorials

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:

jsp-Ausdruck-Sprache

Header-Objekt gibt einen einzelnen Wert, während headerValues ​​ein Array von Strings zurück.