Ausdruckssprache in JSP
Was ist Ausdruckssprache (EL)?
Expression Language (EL) ist ein Mechanismus, der den Zugriff auf die darin gespeicherten Daten vereinfacht Java Bean-Komponente und andere Objekte wie Anforderung, Sitzung und Anwendung usw.
Es gibt viele Operatoren in JSP, die in EL verwendet werden, wie arithmetische und logische Operatoren, um einen Ausdruck auszuführen. Es wurde in JSP 2.0 eingeführt
JSP-Syntax der Ausdruckssprache (EL)
Syntax von EL :$(Ausdruck)
- In JSP wird alles, was in den geschweiften Klammern steht, zur Laufzeit ausgewertet und an den Ausgabestream gesendet.
- Der Ausdruck ist ein gültiger EL-Ausdruck und kann mit einem statischen Text gemischt und mit anderen Ausdrücken kombiniert werden, um einen größeren Ausdruck zu bilden.
Um eine bessere Vorstellung davon zu bekommen, wie Ausdrücke in JSP funktionieren, sehen wir uns das folgende Beispiel an. In diesem Beispiel sehen wir, wie EL als Operator verwendet wird, um zwei Zahlen (1+2) zu addieren und jeweils die Ausgabe zu erhalten.
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Guru JSP1</title> </head> <body> <a>Expression is:</a> ${1+2}; </body> </html>
Erläuterung des Codes:
- Codezeile 11: Die Expression Language (EL) ist so eingestellt, dass wir die beiden Zahlen 1 und 2 addieren, daher ergibt die Ausgabe 3.
Wenn Sie den obigen Code ausführen, erhalten Sie die folgende Ausgabe.
Ausgang:
- Der Ausdruck lautet: 3 (Da die Zahlen 1+2 addiert werden und als Ausgabe dienen)
Anweisungen zur Flusskontrolle:
JSP bietet die Leistung von Java in die Anwendung eingebettet werden. Wir können alle APIs und Bausteine von Java in JSP-Programmierung einschließlich Kontrollflussanweisungen, die die Entscheidungsfindung und die Schleifenanweisungen umfassen.
Im Folgenden werden zwei Arten von Flusskontrollanweisungen beschrieben.
- Entscheidungsaussagen
- Schleifenanweisungen
Entscheidungsaussagen:
Die Entscheidungsaussage in JSP basiert darauf, ob der Bedingungssatz wahr oder falsch ist. Die Anweisung verhält sich entsprechend.
Es gibt zwei Arten von Entscheidungserklärungen, die im Folgenden beschrieben werden:
- Ansonsten
- wechseln
JSP If-else
Die „If else“-Anweisung ist die Basis aller Kontrollflussanweisungen und weist das Programm an, den bestimmten Codeabschnitt nur dann auszuführen, wenn der jeweilige Test „true“ ergibt.
Diese Bedingung wird verwendet, um für mehr als eine Bedingung zu testen, ob sie wahr oder falsch sind.
- Wenn die erste Bedingung wahr ist, wird „if block“ ausgeführt und
- Wenn es falsch ist, wird der „else-Block“ ausgeführt
Syntax für die if-else-Anweisung:
If(test condition) { //Block of statements } else { //Block of statements }
In diesem Beispiel testen wir die „if else“-Bedingung, indem wir die Variable nehmen und den Wert prüfen, wenn die Variable mit ihrem Initialisierungswert übereinstimmt:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Guru JSP2</title> </head> <body> <%! int month=5; %> <% if(month==2){ %> <a>Its February</a> <% }else{ %> <a>Any month other than February</a> <%} %> </body> </html>
Erklärung des Codes:
- Codezeile 10: Die Variable mit dem Namen „Monat“ wird in den Ausdrucks-Tags auf 5 initialisiert
- Codezeile 11: In den EL-Tags gibt es eine „Wenn-Bedingung“, die angibt, dass der Monat gleich 2 ist (die Bedingung wird hier als wahr oder falsch getestet).
- Codezeile 12: Wenn die Bedingung wahr ist, d. h. die Variable „Monat“ ist 2, wird sie im Ausgabestream ausgegeben
- Codezeile 13-15: Wenn die obige if-Bedingung fehlschlägt, wird sie in allen anderen Fällen, in denen die Anweisung im Ausgabestream ausgegeben wird und die Bedingung geschlossen ist, in den else-Teil verschoben
Wenn Sie den obigen Code ausführen, erhalten Sie die folgende Ausgabe.
Ausgang:
- Da der Monat, den wir haben, 5 ist, was nicht gleich #2 (Februar) ist. Daher haben wir die Ausgabe „Jeder Monat außer Februar“ (Monat wird als 5 angegeben, daher wird alles andere ausgeführt)
JSP-Switch
Der Hauptteil der Switch-Anweisung wird als „Switch-Block“ bezeichnet.
- Der Switch-Fall wird verwendet, um die Anzahl der möglichen Ausführungspfade zu überprüfen.
- Ein Schalter kann mit allen Datentypen verwendet werden
- Die Switch-Anweisungen enthalten mehr als einen Fall und einen Standardfall
- Es wertet den Ausdruck aus und führt dann alle Anweisungen aus, die dem entsprechenden Fall folgen.
Syntax für die Switch-Anweisung:
switch (operator) { Case 1: Block of statements break; Case 2: Block of statements break; case n: Block of statements break; default: Block of statements break; }
- Der Switch-Block beginnt mit einem Parameter, dem Operator, der übergeben werden muss, und
- Dann gibt es verschiedene Fälle, die eine Bedingung erfüllen, und der Fall, der mit dem Operator übereinstimmt, wird ausgeführt.
Im folgenden Beispiel haben wir eine Variable Woche definiert und sie wird mit dem Fall abgeglichen, der zutrifft. In diesem Fall ist Woche 2, also 2nd case stimmt überein und die Ausgabe ist Dienstag:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Guru JSP3</title> </head> <body> <%! int week=2; %> <% switch(week){ case 0: out.println("Sunday"); break; case 1: out.println("Monday"); break; case 2: out.println("Tuesday"); break; case 3: out.println("wednesday"); break; case 4: out.println("Thursday"); break; case 5: out.println("Friday"); break; default: out.println("Saturday"); } %> </body> </html>
Erläuterung des Codes:
- Codezeile 10: Die Variable mit dem Namen Woche wird in den Ausdrucks-Tags auf 2 initialisiert
- Codezeile 11: In den EL-Tags wird der Switch-Fall gestartet, indem die Woche als Parameter übergeben wird
- Codezeile 12 – 29: Alle Fälle wurden erwähnt, beginnend mit Fall 0 bis Fall 5, wobei der Wert des Wochenparameters mit den Fällen abgeglichen wird und die Ausgabe dementsprechend gedruckt wird. In diesem Fall ist der Wert 2, daher wird in diesem Fall Fall 2 ausgeführt. Hier ist „out“ die JSP-Klasse, die den Ausgabestream für die generierte Antwort schreibt, und „println“ ist eine Methode dieser Klasse.
- Codezeile 30-32: Wenn alle oben genannten Fälle fehlschlagen, wird zum Standardteil verschoben und ausgeführt, wo die Anweisung im Ausgabestream ausgegeben wird und die Bedingung geschlossen wird
Wenn Sie den obigen Code ausführen, erhalten Sie die folgende Ausgabe.
Ausgang:
- Die Ausgabe ist in diesem Fall Dienstag, wie der 2. Fall genannt wird.
Schleifenanweisungen
JSP For-Schleife
Es wird zum Iterieren der Elemente für eine bestimmte Bedingung verwendet und verfügt über drei Parameter.
- Variablenzähler wird initialisiert
- Bedingung, bis die Schleife ausgeführt werden muss
- Zähler muss inkrementiert werden
For-Schleifensyntax:
For(inti=0;i<n;i++) { //block of statements }
In diesem Beispiel haben wir eine For-Schleife, die iteriert, bis der Zähler kleiner als die angegebene Zahl ist:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Guru JSP4</title> </head> <body> <%! int num=5; %> <% out.println("Numbers are:"); for(int i=0;i<num;i++){ out.println(i); }%> </body> </html>
Erklärung zum Code:
- Codezeile 10: Die Variable mit dem Namen „num“ wird in den Ausdrucks-Tags auf 5 initialisiert
- Codezeile 11-14: In den EL-Tags ist „out“ die Klasse von JSP und „println“ die Methode von out, die im Ausgabestream druckt und eine for-Schleife startet, die drei Parameter hat:
- Variable i wird auf 0 initialisiert,
- Die Bedingung ist gegeben, dass i kleiner als die lokale Variable num sein muss.
- Und i wird jedes Mal erhöht, wenn die Schleife iteriert.
Im Hauptteil von „forloop“ gibt es eine JSP-Klasse, die mithilfe der Methode println in den Ausgabestream druckt, wobei wir die Variable i drucken.
Wenn Sie den obigen Code ausführen, erhalten Sie die folgende Ausgabe.
Ausgang:
- Ausgang Numbers sind 0 1 2 3 4. In diesem Beispiel geben wir die Bedingung an, dass die „for-Schleife“ ausgeführt werden muss, bis der Zähler kleiner als gleich einer Variablen ist. Die Zahl ist 5, also beginnt die Schleife bei 0 und läuft bis 4 (5 Mal). Daher die Ausgabe.
JSP While-Schleife
Es wird verwendet, um zu iterieren Elemente wobei es einen Parameter der Bedingung hat.
Syntax:
While(i<n) { //Block of statements }
In diesem Beispiel haben wir eine While-Schleife, die so lange iteriert, bis der Tag größer oder gleich dem Zähler ist:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Guru JSP5</title> </head> <body> <%! int day=2; int i=1; %> <% while(day>=i){ if(day==i){ out.println("Its Monday"); break;} i++;} %> </body> </html>
Erklärung des Codes:
- Codezeile 10: Die Variable mit dem Namen i wird in den Ausdrucks-Tags auf 1 initialisiert und der Tag ist 2
- Codezeile 11-17: In den EL-Tags gibt es eine „While-Schleife“, die so lange iteriert, bis die Bedingung festgelegt ist, dass die Variable wahr ist, wenn der Tag größer oder gleich i ist. (Tag>=i) Darin gibt es „wenn Bedingung“ (Tag ist gleich i) und „wenn Bedingung“ wahr ist, wird der Ausgabestream gedruckt und die while-Schleife verlassen, andernfalls wird die i-Variable inkrementiert und Schleife iteriert.
Wenn wir den Code ausführen, erhalten wir die folgende Ausgabe
Ausgabe ist:
- Die Ausgabe dieses Codes ist „its Monday".
JSP Operatoren
JSP Operators unterstützt die meisten seiner arithmetischen und logischen Operatoren, die unterstützt werden von Java innerhalb von Expression Language (EL)-Tags. Häufig verwendete Operatoren sind unten aufgeführt:
Folgende Operatoren sind verfügbar:
. | Greifen Sie auf eine Bean-Eigenschaft oder einen Map-Eintrag zu |
[] | Greifen Sie auf ein Array- oder Listenelement zu |
() | Gruppieren Sie einen Unterausdruck, um die Auswertungsreihenfolge zu ändern |
+ | Zusatz |
- | Subtraktion oder Negation eines Wertes |
* | Vervielfältigen |
/ oder div | Division |
% oder mod | Modulo (Rest) |
== oder Gl | Testen Sie auf Gleichheit |
!= oder ne | Testen Sie auf Ungleichheit |
< oder lt | Testen Sie für weniger als |
> oder gt | Testen Sie auf größer als |
<= oder le | Testen Sie auf kleiner oder gleich |
>= oder ge | Testen Sie auf größer oder gleich |
&& oder und | Testen Sie auf logisches UND |
|| oder oder | Testen Sie auf logisches ODER |
! oder nicht | Unäres boolesches Komplement |
leer | Testen Sie auf leere Variablenwerte |
In diesem Beispiel
- Wir deklarieren zwei Variablen, num1 und num2, und nehmen dann eine Variable, num3, wobei wir den JSP-Operator „+by“ verwenden, um num1 und num2 zu addieren und num3 zu erhalten.
- Dann überprüfen wir, ob num3 ungleich 0 ist, indem wir JSP-Operatoren (!= , >) verwenden und
- Dann nehmen wir eine weitere Variable num4, indem wir zwei num1 und num2 multiplizieren und so num4 erhalten.
Als Ausgabe sollten alle diese Zahlen ausgedruckt werden:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Guru JSP6</title> </head> <body> <% int num1=10; int num2 = 50; int num3 = num1+num2; if(num3 != 0 || num3 > 0){ int num4= num1*num2; out.println("Number 4 is " +num4); out.println("Number 3 is " +num3); }%> </body> </html>
Erklärung des Codes:
- Codezeile 10: Die Variable mit dem Namen „num1“ wird in den Ausdrucks-Tags auf 10 und „num2“ auf 50 initialisiert
- Codezeile 11: Die Variable num3 ist die Summe von num1 und num2, wobei wir den Additionsoperator verwenden
- Codezeile 12-16: In den EL-Tags haben wir eine ODER-Bedingung verwendet, die ein logischer Operator und arithmetische Operatoren ist, um zu prüfen, ob num3 in der if-Bedingung größer als 0 ist. Das ODER wird verwendet, wenn eine beliebige Bedingung erfüllt ist. In einem solchen Fall wird der „if-Fall“ aufgerufen, in dem wir zwei Zahlen „num1“ und „num2“ multiplizieren und die Ausgabe in „num4“ erhalten. Anschließend wird der Ausgabestream gedruckt.
Wenn Sie den obigen Code ausführen, erhalten Sie die folgende Ausgabe.
Ausgang:
- Die erste Ausgabe ist Nummer 4 ist 500 (Variable num4, die num1*num2 ist)
- Die zweite Ausgabe ist Nummer 3 ist 60 (Variable Nummer3 mit Nummer1+Nummer2)
Zusammenfassung
- JSP Expression Language (EL) erleichtert den Zugriff auf die in den Javabeans-Komponenten gespeicherten Daten in der Anwendung.
- Es ermöglicht auch die Erstellung von Ausdrücken, die sowohl arithmetisch als auch logisch sind.
- Innerhalb von EL-Tags können wir ganze Zahlen, Gleitkommazahlen, Zeichenfolgen und Boolesche Werte verwenden.
- In JSP können wir mithilfe von EL-Tags auch Schleifen und Entscheidungsanweisungen verwenden