Limbajul de expresie în JSP
Ce este limbajul de expresie (EL)?
Expression Language (EL) este un mecanism care simplifică accesibilitatea datelor stocate în Java componenta bean și alt obiect cum ar fi cererea, sesiune și aplicație etc.
Există mulți operatori în JSP care sunt utilizați în EL, cum ar fi operatorii aritmetici și logici pentru a efectua o expresie. A fost introdus în JSP 2.0
Sintaxa JSP a limbajului de expresie (EL)
Sintaxa lui EL :$(expresie)
- În JSP, orice este prezent în acolade este evaluat în timpul execuției, trimis către fluxul de ieșire.
- Expresia este o expresie EL validă și poate fi amestecată cu un text static și poate fi combinată cu altă expresie pentru a forma o expresie mai mare.
Pentru a vă face o idee mai bună despre cum funcționează expresia în JSP, vom vedea mai jos un exemplu. În acest exemplu, vom vedea cum EL este folosit ca operator pentru a adăuga două numere (1+2) și, respectiv, a obține rezultatul.
<%@ 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>
Explicația codului:
- Linia de cod 11: Limbajul expresiei (EL) este setat în cazul în care adăugăm două numere 1+2, prin urmare, va da rezultate ca 3.
Când executați codul de mai sus, veți avea următoarea ieșire.
producție:
- Expresia este: 3 (deoarece numerele 1+2 vor fi adăugate și vor servi ca rezultat)
Declarații de control al fluxului:
JSP oferă puterea de Java pentru a fi încorporat în aplicație. Putem folosi toate API-urile și blocurile de construcție ale Java in Programare JSP inclusiv instrucțiuni de flux de control care includ luarea deciziilor și instrucțiunile buclei.
Există două tipuri de instrucțiuni de control al fluxului descrise mai jos;
- Declarații de luare a deciziilor
- Declarații de buclă
Declarații de luare a deciziilor:
Declarația de luare a deciziilor în JSP se bazează pe dacă setul de condiții este adevărat sau fals. Declarația se va comporta în consecință.
Există două tipuri de declarații de luare a deciziilor descrise mai jos:
- Dacă – altfel
- comuta
JSP Dacă-altfel
Instrucțiunea „If else” este de bază pentru toate instrucțiunile fluxului de control și îi spune programului să execute o anumită secțiune de cod numai dacă testul respectiv este evaluat la adevărat.
Această condiție este utilizată pentru a testa mai multe condiții dacă sunt adevărate sau false.
- Dacă prima condiție este adevărată, atunci „dacă bloc” este executat și
- dacă este fals, atunci se execută „else block”.
Sintaxă pentru instrucțiunea if – else:
If(test condition) { //Block of statements } else { //Block of statements }
În acest exemplu, vom testa condiția „dacă altfel” luând variabila și verificând valoarea dacă variabila se potrivește cu ceea ce este inițializată:
<%@ 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>
Explicația codului:
- Linia de cod 10: Variabila numită lună este inițializată la 5 în etichetele expresiei
- Linia de cod 11: În etichetele EL există „condiția dacă” care arată că dacă luna este egală cu 2 (condiția este testată aici ca adevărată sau falsă)
- Linia de cod 12: Dacă condiția este adevărată, adică luna variabilă este 2, atunci se va imprima în fluxul de ieșire
- Linia de cod 13-15: Dacă condiția de mai sus, dacă eșuează, atunci se va muta în alt parte pentru toate celelalte cazuri în care instrucțiunea se va imprima în fluxul de ieșire și condiția este închisă
Când executați codul de mai sus, veți avea următoarea ieșire.
ieșire:
- Deoarece luna pe care o avem este 5, care nu este egală cu #2 (februarie). Prin urmare, avem rezultatul „Orice lună, cu excepția lunii februarie” (luna este menționată ca 5, prin urmare, celelalte sunt executate)
Comutator JSP
Corpul instrucțiunii switch este numit „bloc comutator”.
- Cazul de comutare este utilizat pentru a verifica numărul de căi de execuție posibile.
- Un comutator poate fi utilizat cu toate tipurile de date
- Instrucțiunile switch conțin mai multe cazuri și un caz implicit
- Evaluează expresia, apoi execută toate instrucțiunile care urmează cazului potrivit
Sintaxă pentru instrucțiunea switch:
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; }
- Blocul comutatorului începe cu un parametru, care este operatorul care trebuie trecut și
- Apoi, există diferite cazuri care oferă condiție și oricare se potrivește cu operatorul respectivul caz este executat.
În exemplul de mai jos, am definit o săptămână variabilă și se potrivește cu cazul, oricare este adevărat. În acest caz, săptămâna este 2, deci 2nd caz este potrivit și rezultatul este marți:
<%@ 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>
Explicația codului:
- Linia de cod 10: Variabila numită săptămână este inițializată la 2 în etichetele expresiei
- Linia de cod 11: În etichetele EL, cazul comutatorului este pornit unde săptămâna este trecută ca parametru
- Linia de cod 12 – 29: Toate cazurile au fost menționate începând de la cazul 0 până la cazul 5 în care valoarea parametrului săptămânii este corelată cu cazurile și, în consecință, rezultatul este tipărit. În acest caz, valoarea este 2, deci cazul 2 va fi executat în acest caz. Aici „out” este clasa JSP care scrie fluxul de ieșire pentru răspunsul generat, iar „println” este o metodă a acelei clase.
- Linia de cod 30-32: Dacă toate cazurile de mai sus nu reușesc, atunci se va trece la partea implicită și va fi executată, unde instrucțiunea se va imprima în fluxul de ieșire și condiția este închisă
Când executați codul de mai sus, veți avea următoarea ieșire.
ieșire:
- Ieșirea în acest caz este marți, când este numit al doilea caz.
Declarații de buclă
JSP pentru buclă
Este folosit pentru iterarea elementelor pentru o anumită condiție și are trei parametri.
- Contorul de variabile este inițializat
- Condiție până când bucla trebuie să fie executată
- Contorul trebuie crescut
Sintaxa buclei pentru:
For(inti=0;i<n;i++) { //block of statements }
În acest exemplu, avem bucla for care iterează până când contorul este mai mic decât numărul dat:
<%@ 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>
Explicație pentru cod:
- Linia de cod 10: Variabila numită „num” este inițializată la 5 în etichetele expresiei
- Linia de cod 11-14: În etichetele EL, „out” este clasa JSP, iar „println” este metoda out care se tipărește în fluxul de ieșire și este pornită bucla pentru care are trei parametri:
- Variabila i este inițializată la 0,
- Condiția este dată în care i să fie mai mic decât variabila locală num,
- Și i este incrementat de fiecare dată când bucla repetă.
În corpul „forloop”, există o clasă de JSP care se imprimă în fluxul de ieșire folosind metoda println, unde tipărim variabila i.
Când executați codul de mai sus, veți avea următoarea ieșire.
ieșire:
- producție Numbers sunt 0 1 2 3 4. În acest exemplu, dăm condiția ca până când contorul este mai mic decât egal cu o variabilă, „bucla for” trebuie să fie executată. Numărul este 5, așa că bucla va începe de la 0 și va rula până la 4 (de 5 ori). De aici rezultatul.
JSP bucla While
Este folosit pentru a repeta element în care are un parametru al condiției.
Sintaxă:
While(i<n) { //Block of statements }
În acest exemplu, avem o buclă while care va repeta până când ziua este mai mare decât egală cu contorul:
<%@ 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>
Explicația codului:
- Linia de cod 10: Variabila numită i este inițializată la 1 și ziua este 2 în etichetele expresiei
- Linia de cod 11-17: În etichetele EL, există „bucla în timp ce” va itera până când vom avea o condiție setată ca și cum ziua este mai mare sau egală cu variabila i va fi adevărată. (day>=i) În aceasta există „condiția dacă” (ziua este egală cu i) și „condiția dacă” este adevărată, atunci va tipări fluxul de ieșire și va ieși din bucla while, altfel variabila i este incrementată și bucla se repetă.
Când executăm codul, vom avea următoarea ieșire
Ieșirea este:
- Rezultatul acestui cod va fi „its Monday".
JSP Operatori
JSP Operators acceptă majoritatea operatorilor săi aritmetici și logici care sunt suportați de Java în etichetele limbajului de expresie (EL). Operatorii folosiți frecvent sunt menționați mai jos:
Următorii sunt operatorii:
. | Accesați o proprietate bean sau o intrare pe hartă |
[] | Accesați o matrice sau un element Listă |
() | Grupați o subexpresie pentru a schimba ordinea evaluării |
+ | Plus |
- | Scăderea sau negația unei valori |
* | Multiplicare |
/ sau div | diviziune |
% sau mod | Modul (restul) |
== sau echivalentul | Test pentru egalitate |
!= sau ne | Testează inegalitatea |
< sau lt | Testați pentru mai puțin de |
> sau gt | Testați pentru mai mare decât |
<= sau le | Testați pentru mai puțin sau egal |
>= sau ge | Testați pentru mai mare sau egal |
&& sau și | Testează ȘI logic |
|| sau sau | Testează pentru SAU logic |
! sau nu | Complement boolean unar |
Gol | Testați valorile variabilelor goale |
În acest exemplu,
- Declarăm două variabile num1 și num2 și apoi luăm o variabilă num3, unde folosim operatorul JSP + by pentru a adăuga num1 și num2 și obținem num3.
- Apoi verificăm o condiție dacă num3 nu este egal cu 0 utilizând operatori JSP (!= , >) și
- Apoi luăm o altă variabilă num4 înmulțind două num1 și num2 obținem num4.
Toate aceste numere ar trebui să fie tipărite ca rezultat:
<%@ 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>
Explicația codului:
- Linia de cod 10: Variabila numită num1 este inițializată la 10 și num2 la 50 în etichetele de expresie
- Linia de cod 11: Variabila num3 este suma lui num1 și num2 unde folosim operatorul de adăugare
- Linia de cod 12-16: În etichetele EL, am folosit o condiție OR care este operator logic și operatori aritmetici pentru a verifica dacă num3 este mai mare decât 0 în condiția if. SAU este folosit atunci când orice condiție este adevărată în acest caz, va intra în „dacă este cazul”, unde înmulțim două numere „num1” și „num2” și obținem rezultate în „num4” și va imprima fluxul de ieșire.
Când executați codul de mai sus, veți avea următoarea ieșire.
ieșire:
- Prima ieșire este Numărul 4 este 500 (variabila num4 care este num1*num2)
- A doua ieșire este Numărul 3 este 60 (variabila num3 care num1+num2)
Rezumat
- JSP Expression Language (EL) facilitează accesarea aplicației pentru datele stocate în componentele javabeans.
- De asemenea, permite crearea expresiilor care sunt atât aritmetice, cât și logice.
- În cadrul etichetelor EL putem folosi numere întregi. Numere în virgulă mobilă, șiruri și valori booleene.
- În JSP putem folosi, de asemenea, bucle și declarații de luare a deciziilor folosind etichete EL