Väljenduskeel JSP-s
Mis on väljenduskeel (EL)?
Väljenduskeel (EL) on mehhanism, mis lihtsustab juurdepääsetavust salvestatud andmetele Java uba komponent ja muu objekt, nagu päring, seanss ja rakendus jne.
JSP-s on palju operaatoreid, mida EL-is kasutatakse, nagu aritmeetilised ja loogilised operaatorid avaldise täitmiseks. Seda tutvustati versioonis JSP 2.0
JSP väljenduskeele süntaks (EL)
EL süntaks :$(avaldis)
- JSP-s hinnatakse kõik sulgudes olevad asjad käitusajal, mis saadetakse väljundvoogu.
- Avaldis on kehtiv EL-avaldis ja seda saab segada staatilise tekstiga ja kombineerida teiste avaldistega, et moodustada suurem avaldis.
Parema ettekujutuse saamiseks selle kohta, kuidas väljend töötab JSP-s, näeme allpool näidet. Selles näites näeme, kuidas EL-i kasutatakse operaatorina kahe arvu (1+2) lisamiseks ja vastavalt väljundi saamiseks.
<%@ 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>
Koodi selgitus:
- Koodirida 11: Avaldise keel (EL) on seatud nii, et liidame kaks arvu 1+2, seega annab see väljundiks 3.
Kui käivitate ülaltoodud koodi, on teil järgmine väljund.
Väljund:
- Avaldis on: 3 (kuna numbrid 1+2 lisatakse ja toimivad väljundina)
Voolu juhtimise avaldused:
JSP annab võimsuse Java rakendusse manustamiseks. Saame kasutada kõiki API-sid ja ehitusplokke Java in JSP programmeerimine sealhulgas juhtimisvoo avaldused, mis hõlmavad otsuste tegemist ja tsükli avaldusi.
Allpool kirjeldatakse kahte tüüpi voo juhtimise avaldusi;
- Otsustavad avaldused
- Loop avaldused
Otsustusavaldused:
JSP otsustusavaldus põhineb sellel, kas tingimuskomplekt on tõene või väär. Avaldus käitub vastavalt.
Allpool kirjeldatakse kahte tüüpi otsustusavaldusi:
- Kui – muidu
- lüliti
JSP Kui-muidu
Avaldus „If else” on kõigi juhtimisvoo lausete põhiline ja käsib programmil teatud koodiosa käivitada ainult siis, kui konkreetne test on tõene.
Seda tingimust kasutatakse rohkem kui ühe tingimuse testimiseks, kas need on tõesed või valed.
- Kui esimene tingimus on tõene, siis käivitatakse "if block" ja
- kui see on vale, siis käivitatakse muu blokk
If – else lause süntaks:
If(test condition) { //Block of statements } else { //Block of statements }
Selles näites testime tingimust „kui veel”, võttes muutuja ja kontrollides väärtust, kas muutuja vastab lähtestatavale:
<%@ 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>
Koodi selgitus:
- Koodirida 10: Muutuja nimega kuu initsialiseeritakse avaldise siltides väärtuseks 5
- Koodirida 11: EL-märgendites on "if tingimus", mis ütleb, et kui kuu on võrdne 2-ga (tingimust testitakse siin kas tõene või väär)
- Koodirida 12: Kui tingimus on tõsi, et muutuja kuu on 2, prinditakse see väljundvoogu
- Koodirida 13–15: Kui ülaltoodud tingimus ebaõnnestub, liigub see muusse ossa kõikidel muudel juhtudel, kui avaldus prinditakse väljundvoogu ja tingimus suletakse
Kui käivitate ülaltoodud koodi, on teil järgmine väljund.
Väljund:
- Kuna meie kuu on 5, mis ei ole võrdne #2-ga (veebruar). Seega on meil väljund "Iga kuu peale veebruari" (kuud on mainitud kui 5, seega täidetakse muud kuud)
JSP lüliti
Lülitilause põhiosa nimetatakse "lülitiplokiks".
- Switch case’i kasutatakse võimalike täitmisteede arvu kontrollimiseks.
- Lülitit saab kasutada kõigi andmetüüpidega
- Lüliti avaldused sisaldavad rohkem kui ühte juhtu ja ühte vaikejuhtu
- See hindab avaldist ja täidab seejärel kõik vastele järgnevad laused
Switchi avalduse süntaks:
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; }
- Lülitusplokk algab ühe parameetriga, milleks on operaator, mis tuleb edastada ja
- Siis on erinevad juhtumid, mis pakuvad tingimust ja olenevalt sellest, mis operaatoriga sobib, see juhtum täidetakse.
Allolevas näites oleme defineerinud muutuva nädala ja see sobitatakse käändega, olenevalt sellest, kumb on tõene. Sel juhul on nädal 2, seega 2nd juhtum on sobitatud ja väljund on teisipäev:
<%@ 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>
Koodi selgitus:
- Koodirida 10: Muutuja nimega nädal initsialiseeritakse avaldise siltides väärtusega 2
- Koodirida 11: EL-märgendites käivitatakse lülitusjuhtum, kus parameetrina edastatakse nädal
- Koodirida 12–29: Kõik juhtumid on mainitud alates juhtumist 0 kuni juhtumini 5, kus nädala parameetri väärtus on sobitatud juhtumitega ja vastavalt sellele on väljundiks trükitud. Sel juhul on väärtus 2, seega täidetakse sel juhul juhtum 2. Siin on "out" JSP klass, mis kirjutab genereeritud vastuse jaoks väljundvoo ja "println" on selle klassi meetod.
- Koodirida 30–32: Kui kõik ülaltoodud juhtumid ebaõnnestuvad, liigub see vaikeosale ja käivitatakse, kus avaldus trükitakse väljundvoogu ja tingimus suletakse
Kui käivitate ülaltoodud koodi, on teil järgmine väljund.
Väljund:
- Väljund on sel juhul teisipäev, kuna 2. juhtumit nimetatakse.
Loop avaldused
JSP tsükli jaoks
Seda kasutatakse teatud tingimuse elementide itereerimiseks ja sellel on kolm parameetrit.
- Muutuv loendur initsialiseeritakse
- Tingimus, kuni silmus tuleb täita
- Loendurit tuleb suurendada
Silmuse süntaks:
For(inti=0;i<n;i++) { //block of statements }
Selles näites on meil tsükkel, mis kordab seni, kuni loendur on väiksem kui antud arv:
<%@ 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>
Koodi selgitus:
- Koodirida 10: Muutuja nimega "num" lähtestatakse avaldise siltides väärtuseks 5
- Koodirida 11–14: EL-märgendites on "out" JSP klass ja "println" on meetod, mille abil väljundvoos ja for loop prinditakse välja, millel on kolm parameetrit:
- Muutuja i lähtestatakse 0-ks,
- Tingimus on antud, kus i on väiksem kui kohalik muutuja num,
- Ja i-d suurendatakse iga kord, kui silmus itereerub.
Forloopi kehas on JSP klass, mis prindib väljundvoogu, kasutades meetodit println, kus me prindime muutuja i.
Kui käivitate ülaltoodud koodi, on teil järgmine väljund.
Väljund:
- Väljund Numbers on 0 1 2 3 4. Selles näites esitame tingimuse, et seni, kuni loendur on väiksem kui muutujaga võrdne, tuleb "for loop" täita. Arv on 5, nii et tsükkel algab nullist ja kestab kuni 0 (4 korda). Sellest ka väljund.
JSP Kuigi tsükkel
Seda kasutatakse itereerimiseks elemendid kus sellel on üks tingimuse parameeter.
süntaksit:
While(i<n) { //Block of statements }
Selles näites on meil ajatsükkel, mis kordub seni, kuni päev on suurem kui loendur:
<%@ 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>
Koodi selgitus:
- Koodirida 10: Muutuja nimega i lähtestatakse avaldise siltides väärtuseks 1 ja päev on 2
- Koodirida 11–17: EL-märgendites on "while loop", mis kordub seni, kuni meil on seatud tingimus, nagu oleks muutuja i-ga suurem või võrdne. (day>=i) Selle sees on "if tingimus" (päev on võrdne i-ga) ja "kui tingimus" on tõene, siis prindib see väljundvoo ja väljub while-tsüklist, vastasel juhul suurendatakse muutujat i ja tsükkel itereerub.
Kui me koodi käivitame, on meil järgmine väljund
Väljund on:
- Selle koodi väljundiks on "selle Monday".
JSP Operatorse
JSP Operators toetab enamikku oma aritmeetilisi ja loogilisi operaatoreid, mida toetab Java väljenduskeele (EL) siltide sees. Sageli kasutatavad operaatorid on loetletud allpool:
Operaatorid on järgmised:
. | Juurdepääs ubavarale või kaardikirjele |
[] | Juurdepääs massiivi või loendi elemendile |
() | Hindamisjärjestuse muutmiseks rühmitage alamavaldis |
+ | Lisamine |
- | Väärtuse lahutamine või eitamine |
* | Korrutamine |
/ või div | jaotus |
% või mod | Modulo (ülejäänud) |
== või ekv | Võrdsuse test |
!= või ne | Ebavõrdsuse test |
< või lt | Test vähem kui |
> või gt | Testige suuremat kui |
<= või le | Testige, kas see on väiksem või võrdne |
>= või ge | Testige, kas see on suurem või võrdne |
&& või ja | Testige loogilist JA |
|| või või | Testige loogilist VÕI |
! või mitte | Unaarne Boole'i täiend |
Tühi | Testige tühja muutuja väärtusi |
Selles näites
- Deklareerime kaks muutujat num1 ja num2 ning seejärel võtame muutuja num3, kus kasutame JSP operaatorit + by, et lisada num1 ja num2 ning saada num3.
- Seejärel kontrollime tingimust, kas number3 ei ole 0, kasutades JSP operaatoreid (!= , >) ja
- Seejärel võtke veel üks muutuja num4, korrutades kaks numbrit1 ja num2, saame num4.
Kõik need numbrid tuleks meie väljundina välja printida:
<%@ 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>
Koodi selgitus:
- Koodirida 10: Muutuja nimega num1 lähtestatakse avaldise siltides väärtuseks 10 ja num2 väärtuseks 50
- Koodirida 11: Muutuja num3 on väärtuste num1 ja num2 summa, kus me kasutame liitmisoperaatorit
- Koodirida 12–16: EL-märgendites oleme kasutanud tingimust VÕI, mis on loogiline ja aritmeetilisi tehteid, et kontrollida, kas tingimuse if number3 on suurem kui 0. VÕI kasutatakse juhul, kui mõni tingimus on tõene. Sellisel juhul sisestatakse see "kui juhtum", kus me korrutame kaks arvu "num1" ja "num2" ning saame väljundi "num4" ja see prindib väljundvoo.
Kui käivitate ülaltoodud koodi, on teil järgmine väljund.
Väljund:
- Esimene väljund on number 4, mis on 500 (muutuja number4, mis on number1*num2)
- Teine väljund on number 3, mis on 60 (muutuja number3, mille arv1+num2)
kokkuvõte
- JSP Expression Language (EL) muudab rakendusele hõlpsa juurdepääsu Javabeansi komponentidesse salvestatud andmetele.
- Samuti võimaldab see luua avaldisi, mis on nii aritmeetilised kui ka loogilised.
- EL-märgendite sees saame kasutada täisarve. Ujukoma numbrid, stringid ja Boole'i väärtused.
- JSP-s saame EL-silte kasutades kasutada ka silmuseid ja otsustuslauseid