Uttrykksspråk i JSP

Hva er Expression Language (EL)?

Expression Language (EL) er en mekanisme som forenkler tilgjengeligheten til dataene som er lagret i Java bønnekomponent og annet objekt som forespørsel, økt og applikasjon, etc.

Det er mange operatorer i JSP som brukes i EL som aritmetiske og logiske operatorer for å utføre et uttrykk. Den ble introdusert i JSP 2.0

JSP Syntax of Expression Language (EL)

Syntaks av EL :$(uttrykk)

  • I JSP blir det som er tilstede i klammeparentesene evaluert ved kjøretid sendt til utdatastrømmen.
  • Uttrykket er et gyldig EL-uttrykk og det kan blandes med en statisk tekst og kan kombineres med andre uttrykk for å danne større uttrykk.

For å få en bedre ide om hvordan uttrykk fungerer i JSP, vil vi se eksemplet nedenfor. I dette eksemplet vil vi se hvordan EL brukes som en operator for å legge til to tall (1+2) og få utdataene.

<%@ 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 av kode:

  • Kodelinje 11: Expression Language (EL) er satt der vi legger til to tall 1+2, derfor vil det gi utdata som 3.

Når du utfører koden ovenfor, vil du ha følgende utgang.

Produksjon:

JSP Expression Language

  • Uttrykket er: 3 (Som tallene 1+2 vil bli lagt til og tjene som utdata)

Flytkontrolluttalelser:

JSP gir kraften til Java som skal bygges inn i applikasjonen. Vi kan bruke alle API-ene og byggeklossene til Java in JSP programmering inkludert kontrollflyterklæringer som inkluderer beslutningstaking og loop-setningene.

Det er to typer flytkontrollutsagn beskrevet nedenfor;

  1. Beslutningsuttalelser
  2. Løkkeuttalelser

Beslutningsuttalelser:

Beslutningsuttalelse i JSP er basert på om betingelsessettet er sant eller usant. Uttalelsen vil oppføre seg deretter.

Det er to typer beslutningsuttalelser beskrevet nedenfor:

  1. Hvis – annet
  2. bryter

JSP If-else

"If else"-setningen er grunnleggende for alle kontrollflyt-setninger, og den forteller programmet å kjøre den bestemte delen av koden bare hvis den bestemte testen evalueres til sann.

Denne tilstanden brukes til å teste for mer enn én tilstand om de er sanne eller usanne.

  • Hvis den første betingelsen er sann, blir "hvis blokk" utført og
  • hvis den er usann, blir "else block" utført

Syntaks for if – else-setning:

If(test condition)
{
	 //Block of statements    
}
else
{
    //Block of statements
}

I dette eksemplet skal vi teste tilstanden "hvis annet" ved å ta variabel og sjekke verdien hvis variabelen samsvarer med det den er initialisert:

<%@ 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 av koden:

  • Kodelinje 10: Variabel navngitt måned initialiseres til 5 i uttrykkstaggene
  • Kodelinje 11: I EL-taggene er det "if condition" som sier at hvis måneden er lik 2 (betingelsen testes her som sann eller usann)
  • Kodelinje 12: Hvis betingelsen er sann, dvs. at variabelen måned er 2, vil den skrives ut til utdatastrøm
  • Kodelinje 13-15: Hvis betingelsen ovenfor mislykkes, vil den flyttes til en annen del for alle andre tilfeller der setningen vil skrives ut til utdatastrømmen og betingelsen lukkes

Når du utfører koden ovenfor, vil du ha følgende utgang.

Utgang:

JSP If-else

  • Siden måneden vi har er 5 som ikke er lik #2 (februar). Derfor har vi utgangen "Alle andre måneder enn februar" (måned er nevnt som 5, og andre utføres derfor)

JSP-bryter

Brødteksten i brytersetningen kalles en "svitsjblokk".

  • Bryterhuset brukes til å sjekke antall mulige utførelsesveier.
  • En bryter kan brukes med alle datatyper
  • Switch-setningene inneholder mer enn én sak og én standardsak
  • Den evaluerer uttrykket og utfører deretter alle setningene etter samsvarende tilfelle

Syntaks for switch-setning:

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;
}
  • Bryterblokk begynner med én parameter, som er operatøren som må passeres og
  • Deretter er det forskjellige saker som gir tilstand og den som samsvarer med operatøren den saken er utført.

I eksemplet nedenfor har vi definert en variabel uke, og den matches med tilfellet avhengig av hva som er sant. I dette tilfellet er uke 2, derav 2nd saken er matchet, og utgangen 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 av kode:

  • Kodelinje 10: Variabel navngitt uke initialiseres til 2 i uttrykkskodene
  • Kodelinje 11: I EL-taggene startes brytertilfellet hvor uke sendes som parameter
  • Kodelinje 12 – 29: Alle tilfellene har blitt nevnt fra tilfelle 0 til tilfelle 5 hvor verdien av ukeparameteren er matchet med tilfellene, og følgelig utskriften skrives ut. I dette tilfellet er verdien 2, og tilfelle 2 vil derfor bli utført i dette tilfellet. Her er "out" klassen til JSP som skriver utdatastrømmen for generert respons og "println" er en metode for den klassen.
  • Kodelinje 30-32: Hvis alle tilfellene ovenfor mislykkes, vil den flytte til standarddelen og bli utført, hvor setningen vil skrives ut til utdatastrømmen og tilstanden lukkes

Når du utfører koden ovenfor, vil du ha følgende utgang.

Utgang:

JSP-bryter

  • Utgangen i dette tilfellet er tirsdag som 2. tilfelle kalles.

Løkkeuttalelser

JSP For loop

Den brukes til å iterere elementene for en bestemt tilstand, og den har tre parametere.

  • Variabel teller initialiseres
  • Tilstand til sløyfen må utføres
  • Telleren må økes

For loop-syntaks:

For(inti=0;i<n;i++)
{
           //block of statements
}

I dette eksemplet har vi for loop som itererer til telleren er mindre enn det gitte tallet:

<%@ 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:

  1. Kodelinje 10: Variabel kalt "num" initialiseres til 5 i uttrykkstaggene
  2. Kodelinje 11-14: I EL-taggene er "out" klassen til JSP og "println" er metoden for ut hvilke utskrifter i utgangsstrømmen og for loop startes som har tre parametere:
    • Variabel i er initialisert til 0,
    • Betingelse er gitt der i skal være mindre enn lokal variabel num,
    • Og i økes hver gang loop itererer.

I hoveddelen av "forloop" er det en klasse med JSP som skriver ut i utdatastrømmen ved å bruke metoden println hvor vi skriver ut variabelen i.

Når du utfører koden ovenfor, vil du ha følgende utgang.

Utgang:

JSP For loop

  • Produksjon Numbers are 0 1 2 3 4. I dette eksemplet gir vi betingelsen at inntil telleren er mindre enn lik en variabel, må "for loop" utføres. Tallet er 5, så løkken starter fra 0 og går til 4 (5 ganger). Derav utgangen.

JSP While-løkke

Den brukes til å iterere elementer der den har én parameter av tilstanden.

Syntaks:

While(i<n)
{
      //Block of statements
}

I dette eksemplet har vi en while-løkke som vil iterere til dagen er større enn lik telleren:

<%@ 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 av koden:

  • Kodelinje 10: Variabel kalt i initialiseres til 1 og dag er 2 i uttrykkstaggene
  • Kodelinje 11-17: I EL-taggene er det "while loop" vil iterere til vi har en betingelse satt som om dagen er større eller lik i variabel vil være sann. (dag>=i) Innenfor det er det "hvis betingelse" (dag er lik i) og "hvis betingelse" er sant, vil den skrive ut utdatastrømmen, og den vil gå ut av while-løkken, ellers økes i-variabelen og loop itererer.

Når vi kjører koden, vil vi ha følgende utgang

Utgang er:

JSP While-løkke

  • Utdata fra denne koden vil være "dens Monday".

JSP Operatorer

JSP Operators støtter de fleste av sine aritmetiske og logiske operatorer som støttes av Java innenfor expression language (EL)-tagger. Ofte brukte operatører er nevnt nedenfor:

Følgende er operatørene:

. Få tilgang til en bønneeiendom eller kartoppføring
[] Få tilgang til en matrise eller listeelement
() Grupper et underuttrykk for å endre evalueringsrekkefølgen
+ Addisjon
- Subtraksjon eller negasjon av en verdi
* Multiplikasjon
/ eller div Divisjon
% eller mod Modulo (resten)
== eller lign Test for likestilling
!= eller ne Test for ulikhet
< eller lt Test for mindre enn
> eller gt Test for større enn
<= eller le Test for mindre enn eller lik
>= eller ge Test for større enn eller lik
&& eller og Test for logisk OG
|| eller eller Test for logisk ELLER
! eller ikke Unært boolsk komplement
Tom Test for tomme variabelverdier

I dette eksemplet,

  • Vi erklærer to variabler num1 og num2 og tar deretter en variabel num3, hvor vi bruker JSP operator + by for å legge til num1 og num2 og få num3.
  • Deretter sjekker vi en betingelse om num3 ikke er lik 0 ved å bruke JSP-operatorer (!= , >) og
  • Ta så en annen variabel num4 ved å multiplisere to num1 og num2 får vi num4.

Alle disse tallene skal skrives ut som utdata:

<%@ 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 av koden:

  • Kodelinje 10: Variabel kalt num1 initialiseres til 10 og num2 til 50 i uttrykkstaggene
  • Kodelinje 11: Variabelen num3 er summen av num1 og num2 der vi bruker addisjonsoperator
  • Kodelinje 12-16: I EL-taggene har vi brukt en OR-betingelse som er logisk operator og aritmetiske operatorer for å sjekke om num3 er større enn 0 i if-betingelsen. ELLER brukes når en av betingelsene er sanne i slike tilfeller, vil den angi "hvis tilfelle" der vi multipliserer to tall "num1" og "num2" og får utdata i "num4", og det vil skrive ut utdatastrømmen.

Når du utfører koden ovenfor, vil du ha følgende utgang.

Utgang:

JSP Operatorer

  • Den første utgangen er Nummer 4 er 500 (variabel num4 som er num1*num2)
  • Den andre utgangen er Nummer 3 er 60 (variabel num3 som num1+num2)

Sammendrag

  • JSP Expression Language (EL) gjør det enkelt å få tilgang til applikasjonen for dataene som er lagret i javabeans-komponentene.
  • Det lar deg også lage uttrykk som er både aritmetiske og logiske.
  • Innenfor EL-tagger kan vi bruke heltall. Flytende tall, strenger og boolske verdier.
  • I JSP kan vi også bruke looper og beslutningsuttalelser ved å bruke EL-tagger