Udtrykssprog i JSP

⚡ Smart opsummering

Expression Language i JSP forenkler adgangen til data gemt i JavaBønner og implicitte objekter såsom request, session og application. Introduceret i JSP 2.0, understøtter det aritmetiske, logiske og relationelle operatorer, plus beslutningstagning og loop-sætninger skrevet i EL-tags.

  • 🧮 EL defineret: Forenkler adgangen til JavaBønner og implicitte objekter; tilføjet i JSP 2.0.
  • 🔣 Syntaks: Skriv udtryk i ${ } for at evaluere under kørsel og udskrive resultatet.
  • 🔀 Beslutningstagning: if-else- og switch-sætninger styrer sideflowet.
  • 🔁 sløjfer: for- og while-udsagn itererer over betingelser.
  • Operators: Aritmetiske, relationelle og logiske operatorer (eq, lt og, eller, tom).

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 Code:

  • Code Linje 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:

JSP-udtrykssprog

  • 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;

  1. Udtalelser om beslutningstagning
  2. 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:

  1. Hvis ellers
  2. 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:

  • Code Linje 10: Variabel navngivet måned initialiseres til 5 i udtryksmærkerne
  • Code Linje 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)
  • Code Linje 12: Hvis betingelsen er sand, dvs. at den variable måned er 2, udskrives den til outputstrøm
  • Code Linje 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:

JSP Hvis-andet

  • 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 det sande tilfælde. I dette tilfælde er uge 2, altså 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 Code:

  • Code Linje 10: Variabel navngivet uge initialiseres til 2 i udtryksmærkerne
  • Code Linje 11: I EL-tagsene startes switch-casen, hvor uge sendes som parameter
  • Code Linje 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.
  • Code Linje 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:

JSP Switch

  • Udgangen i dette tilfælde er tirsdag som 2. tilfælde kaldes.

Loop-sætninger:

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:

  1. Code Linje 10: Variabel med navnet "num" initialiseres til 5 i udtryksmærkerne
  2. Code Linje 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:

JSP Til loop

  • 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:

  • Code Linje 10: Variabel med navnet i initialiseres til 1 og dag er 2 i udtryksmærkerne
  • Code Linje 11-17: I EL-tagsene er der en "while-løkke", der itererer, indtil vi har en betingelse angivet, hvor variablen "sand" er, hvis dagen er større end eller lig med i. (day>=i). Inden for denne betingelse er der "if condition" (day er lig med i) og "if condition" er sand, så udskriver den outputstrømmen, og den afslutter while-løkken, ellers øges i-variablen, og løkken itererer.

Når vi udfører koden, vil vi have følgende output

Output er:

JSP While loop

  • 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
- Undertraction 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 kontrollerer vi en betingelse for, 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:

  • Code Linje 10: Variabel med navnet num1 initialiseres til 10 og num2 til 50 i udtryksmærkerne
  • Code Linje 11: Variablen num3 er summen af ​​num1 og num2, hvor vi bruger additionsoperator
  • Code Linje 12-16: I EL-tags har vi brugt en OR-betingelse, som er en logisk operator og aritmetiske operatorer til at kontrollere, om num3 er større end 0 i if-betingelsen. OR bruges, når en af ​​betingelserne er sande. I så fald indtastes et "if case", hvor vi ganger de to tal "num1" og "num2" og får output i "num4", og outputstrømmen udskrives.

Når du udfører ovenstående kode, vil du have følgende output.

Output:

JSP Operatorer

  • 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)

Ofte Stillede Spørgsmål

Expression Language (EL) forenkler adgangen til data gemt i JavaBønner og implicitte objekter som request, session og application. Det giver dig mulighed for at skrive præcise udtryk og operatorer direkte på en JSP-side i stedet for Java manuskripter.

EL bruger syntaksen ${expression}. Alt, hvad der er inden for parenteserne, evalueres under kørsel og sendes til outputstrømmen. Udtryk kan kombineres med statisk tekst og andre udtryk.

Expression Language blev introduceret i JSP 2.0. Det var designet til at reducere behovet for Java scriptlets ved at give en enkel måde at tilgå og vise applikationsdata.

AI kan konvertere Java scriptlets til renere EL-udtryk, foreslå den rigtige operator og generere eksempler til loops og betingede sætninger, helping Udviklere skriver mere læsbare JSP-sider hurtigere.

Ja. AI kan markere ugyldig EL-syntaks, uoverensstemmelser i parenteser, manglende bean-egenskaber og typeproblemer og derefter foreslå rettelser, hvilket reducerer runtime-fejl på JSP-sider.

Opsummer dette indlæg med: