Kifejezési nyelv a JSP-ben
Mi az a kifejezésnyelv (EL)?
Az Expression Language (EL) olyan mechanizmus, amely leegyszerűsíti a tárolt adatok hozzáférhetőségét Java komponens komponens és egyéb objektumok, például kérés, munkamenet és alkalmazás stb.
A JSP-ben számos operátort használnak az EL-ben, például aritmetikai és logikai operátorokat egy kifejezés végrehajtására. A JSP 2.0-ban vezették be
JSP kifejezési nyelv szintaxisa (EL)
Az EL szintaxisa :$(kifejezés)
- A JSP-ben a kapcsos zárójelben lévő elemeket a rendszer futás közben kiértékeli a kimeneti adatfolyamba.
- A kifejezés egy érvényes EL-kifejezés, és keverhető statikus szöveggel, és kombinálható más kifejezésekkel nagyobb kifejezés kialakításához.
Hogy jobban megértsük, hogyan működik a kifejezés a JSP-ben, az alábbiakban egy példát fogunk látni. Ebben a példában látni fogjuk, hogyan használják az EL operátort két szám (1+2) összeadásához és a kimenet megszerzéséhez.
<%@ 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>
A kód magyarázata:
- 11. kódsor: Kifejezési nyelv (EL) úgy van beállítva, hogy két 1+2 számot adunk össze, így 3-at ad.
Amikor végrehajtja a fenti kódot, a következő kimenetet kapja.
teljesítmény:
- A kifejezés: 3 (mivel az 1+2 számok hozzáadódnak és kimenetként szolgálnak)
Áramlásszabályozási nyilatkozatok:
A JSP biztosítja a teljesítményt Java be kell ágyazni az alkalmazásba. Az összes API-t és építőelemet használhatjuk Java in JSP programozás beleértve a vezérlési folyamat utasításokat, amelyek magukban foglalják a döntéshozatalt és a hurok utasításokat.
Az alábbiakban kétféle áramlásszabályozási utasítás létezik;
- Döntéshozó nyilatkozatok
- Loop nyilatkozatok
Döntéshozó nyilatkozatok:
A JSP döntéshozatali nyilatkozata azon alapul, hogy a feltételkészlet igaz vagy hamis. A nyilatkozat ennek megfelelően fog viselkedni.
Az alábbiakban kétféle döntéshozatali nyilatkozat létezik:
- Ha más
- kapcsoló
JSP Ha-egyéb
Az „If else” utasítás az összes vezérlőfolyamat-utasítás alapja, és csak akkor utasítja a programot a kód bizonyos szakaszának végrehajtására, ha az adott teszt kiértékelése igaz.
Ezt a feltételt több feltétel tesztelésére használják, hogy azok igazak-e vagy hamisak.
- Ha az első feltétel igaz, akkor az „if block” végrehajtásra kerül, és
- ha hamis, akkor az „else block” végrehajtásra kerül
Az if – else utasítás szintaxisa:
If(test condition) { //Block of statements } else { //Block of statements }
Ebben a példában az „if else” feltételt úgy fogjuk tesztelni, hogy változót veszünk, és ellenőrizzük az értéket, ha a változó egyezik-e azzal, amit inicializáltunk:
<%@ 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>
A kód magyarázata:
- 10. kódsor: A hónap nevű változó 5-re van inicializálva a kifejezési címkékben
- 11. kódsor: Az EL címkékben az „if feltétel” szerepel, amely kimondja, hogy ha a hónap egyenlő 2-vel (itt a feltételt igaznak vagy hamisnak teszteljük)
- 12. kódsor: Ha igaz a feltétel, hogy a változó hónap 2, akkor a kimeneti adatfolyamra nyomtat
- 13-15. kódsor: Ha a fenti, ha a feltétel sikertelen, akkor átkerül az else részre minden más esetben, amikor az utasítás a kimeneti adatfolyamba kerül, és a feltétel zárva van
Amikor végrehajtja a fenti kódot, a következő kimenetet kapja.
output:
- Mivel a mi hónapunk 5, ami nem egyenlő a 2-vel (február). Ezért van a „Februártól eltérő hónap” kimenet (a hónapot 5-ként említik, ezért a többit végrehajtják)
JSP kapcsoló
A switch utasítás törzsét „kapcsolóblokknak” nevezzük.
- A kapcsoló eset a lehetséges végrehajtási utak számának ellenőrzésére szolgál.
- A kapcsoló minden adattípushoz használható
- A switch utasítások egynél több esetet és egy alapértelmezett esetet tartalmaznak
- Kiértékeli a kifejezést, majd végrehajtja a megfelelő esetet követő összes utasítást
A switch utasítás szintaxisa:
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; }
- A kapcsolóblokk egy paraméterrel kezdődik, amely az átadandó operátor és
- Aztán vannak különböző esetek, amelyek feltételt biztosítanak, és amelyik egyezik az operátorral, az adott eset végrehajtásra kerül.
Az alábbi példában definiáltunk egy változó hetet, amely megfeleltetve van azzal az esettel, amelyik igaz. Ebben az esetben a hét 2, tehát 2nd eset megegyezik, és a kimenet kedd:
<%@ 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>
A kód magyarázata:
- 10. kódsor: A hét nevű változó 2-re van inicializálva a kifejezési címkékben
- 11. kódsor: Az EL címkékben a váltási eset indul, ahol a hét paraméterként kerül átadásra
- 12–29. kódsor: Minden esetet megemlítettünk a 0-tól az 5-ös esetig, ahol a hét paraméter értéke illeszkedik az esetekhez, és ennek megfelelően a kimenet nyomtatás. Ebben az esetben az érték 2, így ebben az esetben a 2. eset kerül végrehajtásra. Itt az „out” a JSP osztálya, amely a generált válasz kimeneti adatfolyamát írja, a „println” pedig ennek az osztálynak a metódusa.
- 30-32. kódsor: Ha a fenti esetek sikertelenek, akkor az alapértelmezett részre kerül és végrehajtásra kerül, ahol az utasítás kinyomódik a kimeneti adatfolyamba és a feltétel bezárul
Amikor végrehajtja a fenti kódot, a következő kimenetet kapja.
output:
- A kimenet ebben az esetben a kedd, ahogy a 2. esetet hívják.
Loop nyilatkozatok
JSP For ciklus
Egy adott feltételhez tartozó elemek iterálására szolgál, és három paramétere van.
- A változó számláló inicializálva van
- Feltétel, amíg a hurkot végre kell hajtani
- A számlálót növelni kell
A ciklus szintaxisa:
For(inti=0;i<n;i++) { //block of statements }
Ebben a példában van egy for ciklus, amely addig iterál, amíg a számláló kisebb, mint a megadott szám:
<%@ 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>
Magyarázat a kódhoz:
- 10. kódsor: A „num” nevű változó 5-re van inicializálva a kifejezési címkékben
- 11-14. kódsor: Az EL címkékben az „out” a JSP osztálya, a „println” pedig az a módszer, amellyel a kimeneti adatfolyamba nyomtat és a for ciklus elindul, amelynek három paramétere van:
- Az i változó 0-ra van inicializálva,
- Meg van adva az a feltétel, ahol i kisebb, mint a num helyi változó,
- És az i-t minden ciklus ismétlődésekor növekszik.
A „forloop” törzsében van egy JSP osztály, amely a println metódussal nyomtat a kimeneti adatfolyamba, ahol az i változót nyomtatjuk.
Amikor végrehajtja a fenti kódot, a következő kimenetet kapja.
output:
- teljesítmény Numbers 0 1 2 3 4. Ebben a példában azt a feltételt adjuk meg, hogy amíg a számláló kisebb, mint egy változó, addig a „for ciklust” végre kell hajtani. A szám 5, tehát a ciklus 0-ról indul és 4-ig fut (5-ször). Ezért a kimenet.
JSP While ciklus
Az iterációra szolgál elemek ahol a feltétel egyik paramétere van.
Syntax:
While(i<n) { //Block of statements }
Ebben a példában van egy while ciklusunk, amely addig iterál, amíg a nap nagyobb, mint a számláló:
<%@ 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>
A kód magyarázata:
- 10. kódsor: Az i nevű változó 1-re, a nap pedig 2-re van inicializálva a kifejezési címkékben
- 11-17. kódsor: Az EL címkékben a „while loop” addig ismétlődik, amíg be nem állítunk egy feltételt, amely szerint ha a nap nagyobb vagy egyenlő, mint az i változó igaz lesz. (nap>=i) Ezen belül van „if feltétel” (a nap egyenlő i-vel) és az „if feltétel” igaz, akkor kiírja a kimeneti adatfolyamot, és kilép a while ciklusból, különben az i változó megnövekszik és ciklus iterál.
Amikor végrehajtjuk a kódot, a következő kimenetet kapjuk
A kimenet:
- Ennek a kódnak a kimenete az „its Monday".
JSP Operatorzok
JSP Operators támogatja a legtöbb aritmetikai és logikai operátort, amelyeket a Jáva kifejezésnyelvi (EL) címkéken belül. Az alábbiakban felsoroljuk a gyakran használt operátorokat:
Az operátorok a következők:
. | Hozzáférés egy babtulajdonhoz vagy a térképbejegyzéshez |
[] | Tömb vagy listaelem elérése |
() | Csoportosítson egy részkifejezést az értékelési sorrend megváltoztatásához |
+ | Kiegészítés |
- | Egy érték kivonása vagy tagadása |
* | Szorzás |
/ vagy div | osztály |
% vagy mod | Modulo (a maradék) |
== vagy ekv | Teszt az egyenlőségre |
!= vagy ne | Tesztelje az egyenlőtlenséget |
< vagy lt | Tesztelje kevesebb mint |
> vagy gt | Tesztelje nagyobb mint |
<= vagy le | Tesztelje kisebb vagy egyenlő értékre |
>= vagy ge | Tesztelje nagyobb vagy egyenlő értékre |
&& vagy és | Tesztelje a logikai ÉS |
|| vagy vagy | Tesztelje a logikai VAGY-et |
! vagy nem | Unáris logikai kiegészítés |
Üres | Üres változóértékek tesztelése |
Ebben a példában
- Deklarálunk két változót num1 és num2, majd veszünk egy szám3 változót, ahol a JSP + by operátort használjuk a num1 és num2 hozzáadásához, és megkapjuk a num3-at.
- Ezután ellenőrizzük a feltételt, hogy a num3 nem egyenlő-e 0-val a JSP operátorok segítségével (!= , >) és
- Ezután vegyünk még egy változót num4 úgy, hogy a num1 és a num2 kettőt megszorozzuk, és így kapjuk a szám4-et.
Ezeket a számokat ki kell nyomtatni kimenetünkként:
<%@ 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>
A kód magyarázata:
- 10. kódsor: A num1 nevű változó 10-re, a num2 pedig 50-re van inicializálva a kifejezési címkékben
- 11. kódsor: A num3 változó a num1 és a num2 összege, ahol az összeadás operátort használjuk
- 12-16. kódsor: Az EL címkékben egy VAGY feltételt használtunk, amely logikai operátor és aritmetikai operátorok, hogy ellenőrizzük, hogy a num3 nagyobb-e 0-nál az if feltételben. Az OR-t akkor használjuk, ha bármelyik feltétel igaz, ebben az esetben az „if case”-be kerül, ahol két „szám1” és „szám2” számot megszorozunk, és a kimenetet „szám4”-ben kapjuk meg, és kiírja a kimeneti adatfolyamot.
Amikor végrehajtja a fenti kódot, a következő kimenetet kapja.
output:
- Az első kimenet a 4-es szám 500 (a num4 változó, amely szám1*szám2)
- A második kimenet a 3-as szám 60 (szám3 változó, amely szám1+szám2)
Összegzésként
- A JSP Expression Language (EL) megkönnyíti az alkalmazás elérését a javabean komponensekben tárolt adatokhoz.
- Lehetővé teszi az aritmetikai és logikai kifejezések létrehozását is.
- Az EL címkéken belül használhatunk egész számokat. Lebegőpontos számok, karakterláncok és logikai értékek.
- A JSP-ben ciklusokat és döntéshozatali utasításokat is használhatunk EL-címkék használatával