Expressionsspråk i JSP

⚡ Smart sammanfattning

Expression Language i JSP förenklar åtkomst till data lagrade i JavaBönor och implicita objekt som request, session och application. Introducerad i JSP 2.0, stöder den aritmetiska, logiska och relationella operatorer, plus beslutsfattande och loopsatser skrivna inuti EL-taggar.

  • 🧮 EL-definierad: Förenklar åtkomst till JavaBönor och implicita objekt; tillagda i JSP 2.0.
  • 🔣 Syntax: Skriv uttryck inuti ${ } för att utvärdera vid körning och mata ut resultatet.
  • 🔀 Beslutsfattande: if-else- och switch-satser styr sidflödet.
  • 🔁 Öglor: for- och while-satser itererar över villkor.
  • Operators: Aritmetiska, relationella och logiska operatorer (eq, lt och, eller, tomma).

Expressionsspråk i JSP

Vad är Expression Language (EL)?

Expression Language (EL) är en mekanism som förenklar tillgängligheten för data som lagras i Java bönkomponent och annat objekt som begäran, session och applikation, etc.

Det finns många operatorer i JSP som används i EL som aritmetiska och logiska operatorer för att utföra ett uttryck. Det introducerades i JSP 2.0

JSP Syntax of Expression Language (EL)

Syntax för EL : ${uttryck}

  • I JSP utvärderas vad som än finns i hängslen vid körning och skickas till utgångsströmmen.
  • Uttrycket är ett giltigt EL-uttryck och det kan blandas med en statisk text och kan kombineras med andra uttryck för att bilda ett större uttryck.

För att få en bättre uppfattning om hur uttryck fungerar i JSP, kommer vi att se nedanstående exempel. I det här exemplet kommer vi att se hur EL används som operator för att addera två tal (1+2) och få utdata respektive.

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

Förklaring till Code:

  • Code Linje 11: Expression Language (EL) ställs in där vi adderar två siffror 1+2, därför kommer det att ge ut som 3.

När du kör ovanstående kod får du följande utdata.

Produktion:

JSP Expression Language

  • Uttrycket är: 3 (eftersom siffrorna 1+2 kommer att läggas till och fungera som utdata)

Flödeskontrolluttalanden:

JSP ger kraften till Java ska bäddas in i applikationen. Vi kan använda alla API:er och byggstenar i Java in JSP programmering inklusive kontrollflödesbeskrivningar som inkluderar beslutsfattande och loop-satser.

Det finns två typer av flödeskontrolluttalanden som beskrivs nedan;

  1. Beslutsfattande uttalanden
  2. Loop Statement

Uttalanden om beslutsfattande:

Beslutsfattande uttalande i JSP baseras på om villkorsuppsättningen är sann eller falsk. Uttalandet kommer att agera därefter.

Det finns två typer av beslutsfattande uttalanden som beskrivs nedan:

  1. Om annat
  2. strömbrytare

JSP Om-annat

"If else"-satsen är grundläggande för alla kontrollflödessatser, och den säger åt programmet att exekvera en viss del av koden endast om det specifika testet utvärderas till sant.

Detta villkor används för att testa för mer än ett tillstånd om de är sanna eller falska.

  • Om det första villkoret är sant exekveras "if block" och
  • om det är falskt exekveras "else block".

Syntax för if – else-sats:

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

I det här exemplet kommer vi att testa villkoret "om annat" genom att ta variabel och kontrollera värdet om variabeln matchar vad den är initialiserad:

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

Förklaring av koden:

  • Code Linje 10: Variabel med namnet månad initieras till 5 i expressionstaggarna
  • Code Linje 11: I EL-taggarna finns det "if condition" som anger att om månaden är lika med 2 (villkor testas här som sant eller falskt)
  • Code Linje 12: Om villkoret är sant att variabelmånaden är 2 kommer den att skrivas ut till utdataström
  • Code Rad 13-15: Om ovanstående om villkor misslyckas kommer det att flyttas till annan del för alla andra fall där satsen kommer att skrivas ut till utdataströmmen och villkoret stängs

När du kör ovanstående kod får du följande utdata.

Produktion:

JSP Om-annat

  • Eftersom månaden vi har är 5 vilket inte är lika med #2 (februari). Därför har vi utgången "Val som helst annan månad än februari" (månad nämns som 5 och därför exekveras andra)

JSP Switch

Huvuddelen av switch-satsen kallas ett "switch block".

  • Växellådan används för att kontrollera antalet möjliga exekveringsvägar.
  • En switch kan användas med alla datatyper
  • Switch-satserna innehåller mer än ett fall och ett standardfall
  • Den utvärderar uttrycket och exekverar sedan alla påståenden efter det matchande fallet

Syntax för switch-sats:

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 block börjar med en parameter, som är den operatör som måste passeras och
  • Sedan finns det olika fall som ger tillstånd och vilket som än matchar med operatören det ärendet exekveras.

I exemplet nedan har vi definierat en variabel vecka, och den matchas med det fall som är sant. I det här fallet är vecka 2, alltså 2nd fallet matchas, och utgången är tisdag:

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

Förklaring till Code:

  • Code Linje 10: Variabel med namnet vecka initieras till 2 i expressionstaggarna
  • Code Linje 11: I EL-taggarna startas växelfallet där vecka skickas som parameter
  • Code Rad 12–29: Alla fall har nämnts från fall 0 till fall 5 där värdet på veckoparametern matchas med fallen och följaktligen skrivs ut. I detta fall är värdet 2, så fall 2 kommer att exekveras i detta fall. Här är "out" klassen för JSP som skriver utströmmen för genererat svar och "println" är en metod för den klassen.
  • Code Rad 30-32: Om ovanstående alla fall misslyckas kommer det att flyttas till standarddelen och kommer att köras, där satsen skrivs ut till utdataströmmen och villkoret stängs

När du kör ovanstående kod får du följande utdata.

Produktion:

JSP Switch

  • Utgången i detta fall är tisdag som det andra fallet kallas.

Loop-satser:

JSP För loop

Den används för att iterera elementen för ett visst tillstånd, och den har tre parametrar.

  • Variabel räknare initieras
  • Tillstånd tills slingan måste utföras
  • Räknaren måste ökas

För loopsyntax:

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

I detta exempel har vi för loop som itererar tills räknaren är mindre än det givna numret:

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

Förklaring till koden:

  1. Code Linje 10: Variabel med namnet "num" initieras till 5 i expressionstaggarna
  2. Code Rad 11-14: I EL-taggarna är "out" klassen för JSP och "println" är metoden för att skriva ut i utströmmen och för loop startas som har tre parametrar:
    • Variabel i initieras till 0,
    • Villkor ges där i är mindre än lokal variabel num,
    • Och i ökas varje gång loop itererar.

I "forloop"-kroppen finns det en klass av JSP som skriver ut i utgångsströmmen med metoden println där vi skriver ut variabeln i.

När du kör ovanstående kod får du följande utdata.

Produktion:

JSP För loop

  • Produktion Numbers are 0 1 2 3 4. I det här exemplet ger vi villkoret att tills räknaren är mindre än lika med en variabel måste "for loop" exekveras. Siffran är 5 så slingan börjar från 0 och löper till 4 (5 gånger). Därav utgången.

JSP While loop

Den används för att iterera element där den har en parameter av villkoret.

Syntax:

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

I det här exemplet har vi en while-loop som upprepas tills dagen är större än lika med räknaren:

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

Förklaring av koden:

  • Code Linje 10: Variabel med namnet i initieras till 1 och dag är 2 i expressionstaggarna
  • Code Rad 11-17: I EL-taggarna finns en "while-loop" som itererar tills vi har ett villkor satt som säger att variabeln "dagen" är större eller lika med i. (day>=i) Inom den finns "if condition" (day är lika med i) och "if condition" är sant, då skriver den utdataströmmen och lämnar while-loopen, annars ökar variabeln "i" och loopen itererar.

När vi kör koden får vi följande utdata

Utgången är:

JSP While loop

  • Utdata från denna kod kommer att vara "dess Monday".

JSP Operatorer

JSP Operators stöder de flesta av sina aritmetiska och logiska operatorer som stöds av Java inom expression language (EL)-taggar. Ofta använda operatörer nämns nedan:

Följande är operatörerna:

. Få tillgång till en bönegendom eller kartpost
[] Få åtkomst till en array eller List-element
() Gruppera ett underuttryck för att ändra utvärderingsordningen
+ Dessutom
- Subtraction eller negation av ett värde
* Multiplikation
/ eller div division
% eller mod Modulo (återstoden)
== eller ekv Testa för jämlikhet
!= eller nej Testa för ojämlikhet
< eller lt Testa för mindre än
> eller gt Testa för större än
<= eller le Testa för mindre än eller lika
>= eller ge Testa för större än eller lika
&& eller och Testa för logiskt OCH
|| eller eller Testa för logiskt ELLER
! eller inte Unärt booleskt komplement
Tom Testa för tomma variabelvärden

I detta exempel,

  • Vi deklarerar två variabler num1 och num2 och tar sedan en variabel num3, där vi använder JSP operator + by för att lägga till num1 och num2 och få num3.
  • Sedan kontrollerar vi ett villkor om num3 inte är lika med 0 genom att använda JSP-operatorer (!=, >) och
  • Ta sedan en annan variabel num4 genom att multiplicera två num1 och num2 får vi num4.

Dessa alla siffror ska skrivas ut som vår 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>

Förklaring av koden:

  • Code Linje 10: Variabel med namnet num1 initieras till 10 och num2 till 50 i expressionstaggarna
  • Code Linje 11: Variabeln num3 är summan av num1 och num2 där vi använder additionsoperator
  • Code Rad 12-16: I EL-taggarna har vi använt ett ELLER-villkor, vilket är en logisk operator och aritmetiska operatorer för att kontrollera om num3 är större än 0 i if-villkoret. ELLER används när något av villkoren är sant, i ett sådant fall kommer det att gå in i "if case" där vi multiplicerar två tal "num1" och "num2" och får utdata i "num4" och utdataströmmen skrivs ut.

När du kör ovanstående kod får du följande utdata.

Produktion:

JSP Operatorer

  • Den första utgången är nummer 4 är 500 (variabel num4 som är num1*num2)
  • Den andra utgången är nummer 3 är 60 (variabel num3 som num1+num2)

Vanliga frågor

Expression Language (EL) förenklar åtkomst till data lagrade i JavaBönor och implicita objekt som request, session och application. Det låter dig skriva koncisa uttryck och operatorer direkt på en JSP-sida istället för Java manus.

EL använder syntaxen ${expression}. Allt som finns innanför klammerparenteserna utvärderas vid körning och skickas till utdataströmmen. Uttryck kan kombineras med statisk text och andra uttryck.

Expression Language introducerades i JSP 2.0. Det utformades för att minska behovet av Java scriptlets genom att tillhandahålla ett enkelt sätt att komma åt och visa applikationsdata.

AI kan konvertera Java scriptlets till renare EL-uttryck, föreslå rätt operator och generera exempel för loopar och villkor, helping utvecklare skriver mer läsbara JSP-sidor snabbare.

Ja. AI kan flagga ogiltig EL-syntax, felaktiga klammerparenteser, saknade bönegenskaper och typproblem, och sedan föreslå korrigeringar, vilket minskar körtidsfel på JSP-sidor.

Sammanfatta detta inlägg med: