Udtrykssprog i JSP
Hvad er Expression Language (EL)?
Expression Language (EL) er en mekanisme, der forenkler tilgængeligheden af de data, der er gemt i Java bønnekomponent og andet objekt som anmodning, session og applikation osv.
Der er mange operatorer i JSP, der bruges i EL som aritmetiske og logiske operatorer til at udføre et udtryk. Det blev introduceret i JSP 2.0
JSP Syntax of Expression Language (EL)
Syntaks af EL :$(udtryk)
- I JSP bliver alt, hvad der er til stede i bøjlerne, evalueret ved kørsel, sendt til outputstrømmen.
- Udtrykket er et gyldigt EL-udtryk, og det kan blandes med en statisk tekst og kan kombineres med andre udtryk for at danne et større udtryk.
For at få en bedre idé om, hvordan udtryk fungerer i JSP, vil vi se nedenstående eksempel. I dette eksempel vil vi se, hvordan EL bruges som en operator til at tilføje to tal (1+2) og få henholdsvis output.
<%@ 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>
Forklaring af kode:
- Kodelinje 11: Expression Language (EL) er indstillet, hvor vi tilføjer to tal 1+2, derfor vil det give output som 3.
Når du udfører ovenstående kode, vil du have følgende output.
Produktion:
- Udtrykket er: 3 (da tal 1+2 vil blive tilføjet og fungere som output)
Flowkontrolerklæringer:
JSP giver kraften til Java skal indlejres i applikationen. Vi kan bruge alle API'er og byggeklodser i Java in JSP programmering herunder kontrolflow-erklæringer, som inkluderer beslutningstagning og loop-sætningerne.
Der er to typer flowkontrolerklæringer beskrevet nedenfor;
- Udtalelser om beslutningstagning
- Looperklæringer
Beslutningserklæringer:
Beslutningssætning i JSP er baseret på, om betingelsessættet er sandt eller falsk. Erklæringen vil opføre sig i overensstemmelse hermed.
Der er to typer beslutningserklæringer beskrevet nedenfor:
- Hvis ellers
- skifte
JSP Hvis-andet
"If else"-sætningen er grundlæggende for alle kontrolflow-sætninger, og den fortæller programmet, at det kun skal udføre den bestemte sektion af kode, hvis den pågældende test evalueres til sand.
Denne betingelse bruges til at teste for mere end én tilstand, om de er sande eller falske.
- Hvis den første betingelse er sand, udføres "hvis blok" og
- hvis det er falsk, udføres "else-blokering".
Syntaks for if – else sætning:
If(test condition) { //Block of statements } else { //Block of statements }
I dette eksempel skal vi teste tilstanden "hvis andet" ved at tage variabel og kontrollere værdien, hvis variablen stemmer overens med det, den er initialiseret:
<%@ 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>
Forklaring af koden:
- Kodelinje 10: Variabel navngivet måned initialiseres til 5 i udtryksmærkerne
- Kodelinje 11: I EL-tags er der "hvis betingelse", der angiver, at hvis måneden er lig med 2 (betingelsen testes her som sand eller falsk)
- Kodelinje 12: Hvis betingelsen er sand, dvs. at den variable måned er 2, udskrives den til outputstrøm
- Kodelinje 13-15: Hvis ovenstående, hvis betingelse mislykkes, vil den flytte til anden del for alle andre tilfælde, hvor sætningen udskrives til outputstrømmen, og betingelsen lukkes
Når du udfører ovenstående kode, vil du have følgende output.
Output:
- Siden den måned vi har er 5, hvilket ikke er lig med #2 (februar). Derfor har vi outputtet "Enhver anden måned end februar" (måned er nævnt som 5, derfor udføres ellers)
JSP Switch
Brødteksten i switch-sætningen kaldes en "switch-blok".
- Switch casen bruges til at kontrollere antallet af mulige udførelsesveje.
- En switch kan bruges med alle datatyper
- Switch-sætningerne indeholder mere end én sag og én standardsag
- Den evaluerer udtrykket og udfører derefter alle sætningerne efter matchende tilfælde
Syntaks for switch-sætning:
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; }
- Switch blok begynder med én parameter, som er den operatør, der skal passeres og
- Så er der forskellige sager, som giver betingelse, og hvilken som helst matcher med operatøren, den sag udføres.
I eksemplet nedenfor har vi defineret en variabel uge, og den matches med sagen, alt efter hvad der er sandt. I dette tilfælde er uge 2 og derfor 2nd case er matchet, og outputtet er tirsdag:
<%@ 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>
Forklaring af kode:
- Kodelinje 10: Variabel navngivet uge initialiseres til 2 i udtryksmærkerne
- Kodelinje 11: I EL-tagsene startes switch-casen, hvor uge sendes som parameter
- Kodelinje 12 – 29: Alle tilfældene er blevet nævnt fra tilfælde 0 til tilfælde 5, hvor værdien af ugeparameteren er matchet med tilfældene, og derfor udskrives output. I dette tilfælde er værdien 2, så tilfælde 2 vil blive udført i dette tilfælde. Her er "out" klassen af JSP, som skriver outputstrømmen for genereret svar, og "println" er en metode i den klasse.
- Kodelinje 30-32: Hvis ovenstående alle tilfælde mislykkes, vil den flytte til standarddelen og blive udført, hvor sætningen udskrives til outputstrømmen og tilstanden lukkes
Når du udfører ovenstående kode, vil du have følgende output.
Output:
- Udgangen i dette tilfælde er tirsdag som 2. tilfælde kaldes.
Looperklæringer
JSP Til loop
Det bruges til at iterere elementerne for en bestemt tilstand, og det har tre parametre.
- Variabel tæller initialiseres
- Betingelse indtil løkken skal udføres
- Tælleren skal øges
For sløjfesyntaks:
For(inti=0;i<n;i++) { //block of statements }
I dette eksempel har vi for loop, som itererer, indtil tælleren er mindre end det givne tal:
<%@ 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>
Forklaring på koden:
- Kodelinje 10: Variabel med navnet "num" initialiseres til 5 i udtryksmærkerne
- Kodelinje 11-14: I EL-tags er "out" klassen af JSP, og "println" er metoden til at udskrive i output-stream og for loop startes, som har tre parametre:
- Variabel i initialiseres til 0,
- Betingelse er givet, hvor i skal være mindre end lokal variabel num,
- Og i øges hver gang loop itererer.
I hoveddelen af "forloop" er der en klasse af JSP, som udskriver i outputstrømmen ved hjælp af metoden println, hvor vi udskriver variablen i.
Når du udfører ovenstående kode, vil du have følgende output.
Output:
- Produktion Numbers are 0 1 2 3 4. I dette eksempel giver vi betingelsen, at indtil tælleren er mindre end lig med en variabel, skal "for loop" udføres. Tallet er 5, så løkken starter fra 0 og løber til 4 (5 gange). Derfor outputtet.
JSP While loop
Det bruges til at gentage elementer hvor den har én parameter af betingelsen.
Syntaks:
While(i<n) { //Block of statements }
I dette eksempel har vi en while-løkke, som vil iterere, indtil dagen er større end lig med tælleren:
<%@ 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>
Forklaring af koden:
- Kodelinje 10: Variabel med navnet i initialiseres til 1 og dag er 2 i udtryksmærkerne
- Kodelinje 11-17: I EL-tags er der "while loop" vil iterere indtil vi har en betingelse sat som om dagen er større eller lig med i variabel vil være sand. (dag>=i) Inden for det er der "hvis betingelse" (dag er lig med i) og "hvis betingelse" er sand, vil den udskrive outputstrømmen, og den vil forlade while-løkken, ellers øges i-variablen og loop itererer.
Når vi udfører koden, vil vi have følgende output
Output er:
- Outputtet af denne kode vil være "dens Monday".
JSP Operatorer
JSP Operators understøtter de fleste af sine aritmetiske og logiske operatorer, som understøttes af Java inden for expression language (EL) tags. Ofte brugte operatører er nævnt nedenfor:
Følgende er operatørerne:
. | Få adgang til en bønneejendom eller kortpost |
[] | Få adgang til et array eller listeelement |
() | Gruppér et underudtryk for at ændre evalueringsrækkefølgen |
+ | Tilsætning |
- | Subtraktion eller negation af en værdi |
* | Multiplikation |
/ eller div | Afdeling |
% eller mod | Modulo (resten) |
== eller lign | Test for lighed |
!= eller ne | Test for ulighed |
< eller lt | Test for mindre end |
> eller gt | Test for større end |
<= eller le | Test for mindre end eller lig |
>= eller ge | Test for større end eller lig |
&& eller og | Test for logisk OG |
|| eller eller | Test for logisk ELLER |
! eller ikke | Unært boolesk komplement |
Tom | Test for tomme variabelværdier |
I dette eksempel
- Vi erklærer to variable num1 og num2 og tager derefter en variabel num3, hvor vi bruger JSP operator + by til at tilføje num1 og num2 og få num3.
- Derefter tjekker vi en betingelse om num3 ikke er lig med 0 ved at bruge JSP-operatorer (!= , >) og
- Tag derefter en anden variabel num4 ved at gange to num1 og num2 får vi num4.
Alle disse tal skal udskrives som vores output:
<%@ 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>
Forklaring af koden:
- Kodelinje 10: Variabel med navnet num1 initialiseres til 10 og num2 til 50 i udtryksmærkerne
- Kodelinje 11: Variablen num3 er summen af num1 og num2, hvor vi bruger additionsoperator
- Kodelinje 12-16: I EL-taggene har vi brugt en OR-betingelse, som er logisk operator og aritmetiske operatorer til at kontrollere, om num3 er større end 0 i if-betingelsen. ELLER bruges, når en betingelse er sand i et sådant tilfælde, vil den indtaste "hvis tilfælde", hvor vi multiplicerer to tal "num1" og "num2" og får output i "num4", og det vil udskrive outputstrømmen.
Når du udfører ovenstående kode, vil du have følgende output.
Output:
- Det første output er Nummer 4 er 500 (variabel num4, som er num1*num2)
- Den anden udgang er Nummer 3 er 60 (variabel num3, som num1+num2)
Resumé
- JSP Expression Language (EL) gør det nemt at få adgang til applikationen for de data, der er gemt i javabeans-komponenterne.
- Det giver også mulighed for at skabe udtryk, som er både aritmetiske og logiske.
- Inden for EL-tags kan vi bruge heltal. Flydende kommatal, strenge og booleske værdier.
- I JSP kan vi også bruge loops og beslutningstagningserklæringer ved hjælp af EL-tags