Expressietaal in JSP

โšก Slimme samenvatting

De expressietaal in JSP vereenvoudigt de toegang tot gegevens die zijn opgeslagen in JavaBeans en impliciete objecten zoals request, session en application. Geรฏntroduceerd in JSP 2.0, ondersteunt het rekenkundige, logische en relationele operatoren, evenals beslissings- en lusinstructies die binnen EL-tags zijn geschreven.

  • ๐Ÿงฎ EL gedefinieerd: Vereenvoudigt de toegang tot JavaBeans en impliciete objecten; toegevoegd in JSP 2.0.
  • ๐Ÿ”ฃ Syntax: Schrijf expressies binnen ${ } die tijdens de uitvoering worden geรซvalueerd en waarvan het resultaat wordt weergegeven.
  • ๐Ÿ”€ Besluitvorming: If-else- en switch-instructies bepalen de paginastroom.
  • ๐Ÿ” Lussen: `for` en `while` statements herhalen voorwaarden.
  • โž• OperaTorens: Rekenkundige, relationele en logische operatoren (eq, lt, and, or, empty).

Expressietaal in JSP

Wat is expressietaal (EL)?

Expression Language (EL) is een mechanisme dat de toegankelijkheid van de gegevens die zijn opgeslagen in Java bean-component en andere objecten zoals aanvraag, sessie en applicatie, enz.

Er zijn veel operatoren in JSP die in EL worden gebruikt, zoals rekenkundige en logische operatoren om een โ€‹โ€‹expressie uit te voeren. Het werd geรฏntroduceerd in JSP 2.0

JSP-syntaxis van expressietaal (EL)

Syntaxis van EL : ${expressie}

  • In JSP wordt alles wat aanwezig is in de accolades tijdens runtime geรซvalueerd en naar de uitvoerstroom verzonden.
  • De uitdrukking is een geldige EL-uitdrukking en kan worden gemengd met een statische tekst en kan worden gecombineerd met andere uitdrukkingen om een โ€‹โ€‹grotere uitdrukking te vormen.

Om een โ€‹โ€‹beter idee te krijgen van hoe expressie werkt in JSP, zullen we het onderstaande voorbeeld bekijken. In dit voorbeeld zullen we zien hoe EL wordt gebruikt als een operator om twee getallen (1+2) op te tellen en respectievelijk de output te krijgen.

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

Uitleg van Code:

  • Code Regel 11: Expression Language (EL) wordt gebruikt om twee getallen op te tellen (1+2), waardoor het resultaat 3 is.

Wanneer u de bovenstaande code uitvoert, krijgt u de volgende uitvoer.

uitgang:

JSP-expressietaal

  • De uitdrukking is: 3 (Aangezien de getallen 1+2 worden opgeteld en als uitvoer dienen)

Flow Control-verklaringen:

JSP biedt de kracht van Java in de applicatie te integreren. We kunnen alle APIโ€™s en bouwstenen van gebruiken Java in JSP-programmering inclusief controlestroominstructies die besluitvorming en de lusinstructies omvatten.

Er worden hieronder twee typen stroombesturingsinstructies beschreven;

  1. Besluitvormingsverklaringen
  2. Loop-verklaringen

Besluitvormingsverklaringen:

De besluitvormingsverklaring in JSP is gebaseerd op de vraag of de gestelde voorwaarde waar of onwaar is. De verklaring zal zich dienovereenkomstig gedragen.

Hieronder worden twee soorten besluitvormingsverklaringen beschreven:

  1. Als โ€“ anders
  2. schakelaar

JSP Als-anders

De instructie 'If else' is de basis van alle instructies voor de besturingsstroom en vertelt het programma dat het een bepaald gedeelte van de code alleen moet uitvoeren als de specifieke test als 'true' wordt beoordeeld.

Deze voorwaarde wordt gebruikt om voor meer dan รฉรฉn voorwaarde te testen of deze waar of onwaar is.

  • Als de eerste voorwaarde waar is, wordt โ€œif blockโ€ uitgevoerd en
  • als het false is, wordt โ€œelse blockโ€ uitgevoerd

Syntaxis voor if โ€“ else-instructie:

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

In dit voorbeeld gaan we de โ€œif elseโ€-voorwaarde testen door een variabele te nemen en de waarde ervan te controleren om te zien of de variabele overeenkomt met wat deze heeft geรฏnitialiseerd:

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

Uitleg van de code:

  • Code Regel 10: Variabele met de naam maand wordt geรฏnitialiseerd op 5 in de expressietags
  • Code Regel 11: In de EL-tags staat een โ€œif-voorwaardeโ€ waarin staat dat als de maand gelijk is aan 2 (de voorwaarde wordt hier getest als waar of onwaar)
  • Code Regel 12: Als de voorwaarde waar is, dat wil zeggen dat de variabele maand 2 is, wordt deze afgedrukt naar de uitvoerstroom
  • Code Lijn 13-15: Als bovenstaande voorwaarde mislukt, wordt deze verplaatst naar het andere gedeelte voor alle andere gevallen waarin de instructie naar de uitvoerstroom wordt afgedrukt en de voorwaarde is gesloten

Wanneer u de bovenstaande code uitvoert, krijgt u de volgende uitvoer.

Output:

JSP Als-anders

  • Omdat de maand die we hebben 5 is, wat niet gelijk is aan #2 (februari). Daarom hebben we de uitvoer "Elke maand behalve februari" (maand wordt genoemd als 5, dus anders worden uitgevoerd)

JSP-schakelaar

De hoofdtekst van de switch-instructie wordt een โ€œswitch-blokโ€ genoemd.

  • De switchcase wordt gebruikt om het aantal mogelijke uitvoeringspaden te controleren.
  • Een switch kan bij alle datatypen worden gebruikt
  • De switch-instructies bevatten meer dan รฉรฉn case en รฉรฉn standaardcase
  • Het evalueert de expressie en voert vervolgens alle statements uit die de overeenkomende hoofdlettergevoeligheid volgen

Syntaxis voor switch-instructie:

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;
}
  • Het schakelblok begint met รฉรฉn parameter, namelijk de operator die moet worden doorgegeven en
  • Dan zijn er nog verschillende gevallen die voorwaarden bieden en de voorwaarde die overeenkomt met de operator die het geval betreft, wordt uitgevoerd.

In het onderstaande voorbeeld hebben we een variabele 'week' gedefinieerd, die wordt gekoppeld aan de voorwaarde dat deze waar is. In dit geval is 'week' 2, dus 2.nd case komt overeen en de uitvoer is dinsdag:

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

Uitleg van Code:

  • Code Regel 10: Variabele met de naam week wordt geรฏnitialiseerd op 2 in de expressietags
  • Code Regel 11: In de EL-tags wordt het schakelgeval gestart waarbij week als parameter wordt doorgegeven
  • Code Regel 12 โ€“ 29: Alle gevallen zijn genoemd, beginnend bij geval 0 tot en met geval 5, waarbij de waarde van de weekparameter overeenkomt met de gevallen, en dienovereenkomstig wordt de uitvoer afgedrukt. In dit geval is de waarde 2. In dit geval wordt geval 2 uitgevoerd. Hier is โ€œoutโ€ de klasse van JSP die de uitvoerstroom schrijft voor het gegenereerde antwoord en โ€œprintlnโ€ is een methode van die klasse.
  • Code Lijn 30-32: Als de bovengenoemde gevallen mislukken, wordt het naar het standaardgedeelte verplaatst en uitgevoerd, waarbij de instructie naar de uitvoerstroom wordt afgedrukt en de voorwaarde wordt gesloten

Wanneer u de bovenstaande code uitvoert, krijgt u de volgende uitvoer.

Output:

JSP-schakelaar

  • De uitvoer in dit geval is dinsdag, aangezien het tweede geval wordt aangeroepen.

Lusinstructies:

JSP Voor lus

Het wordt gebruikt voor het itereren van de elementen voor een bepaalde voorwaarde, en het heeft drie parameters.

  • Variabele teller wordt geรฏnitialiseerd
  • Voorwaarde totdat de lus moet worden uitgevoerd
  • De teller moet worden verhoogd

For-lussyntaxis:

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

In dit voorbeeld hebben we een for-lus die itereert totdat de teller kleiner is dan het opgegeven getal:

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

Uitleg voor de code:

  1. Code Regel 10: Variabele met de naam โ€œnumโ€ wordt geรฏnitialiseerd op 5 in de expressietags
  2. Code Lijn 11-14: In de EL-tags is โ€œoutโ€ de klasse van JSP en โ€œprintlnโ€ is de methode van out die de uitvoerstroom afdrukt en de for-lus start die drie parameters heeft:
    • Variabele i wordt geรฏnitialiseerd op 0,
    • Er wordt een voorwaarde gesteld waarbij i kleiner is dan de lokale variabele num,
    • En i wordt elke keer dat de lus itereert verhoogd.

In de hoofdtekst van "forloop" bevindt zich een klasse JSP die in de uitvoerstroom afdrukt met behulp van de methode println, waarbij we de variabele i afdrukken.

Wanneer u de bovenstaande code uitvoert, krijgt u de volgende uitvoer.

Output:

JSP Voor lus

  • uitgang Numbers zijn 0 1 2 3 4. In dit voorbeeld geven we de voorwaarde dat totdat de teller kleiner is dan gelijk aan een variabele, de โ€œfor-lusโ€ moet worden uitgevoerd. Het getal is 5, dus de lus begint bij 0 en loopt tot 4 (5 keer). Vandaar de uitvoer.

JSP While-lus

Het wordt gebruikt om de geeft je de mogelijkheid waarin het รฉรฉn parameter van de voorwaarde heeft.

Syntax:

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

In dit voorbeeld hebben we een while-lus die herhaalt totdat dag groter is dan gelijk aan de teller:

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

Uitleg van de code:

  • Code Regel 10: Variabele met de naam i wordt geรฏnitialiseerd op 1 en dag is 2 in de expressietags
  • Code Lijn 11-17: In de EL-tags bevindt zich een "while-lus" die herhaalt totdat aan een voorwaarde is voldaan: als de dag groter of gelijk is aan de variabele i, is de voorwaarde waar (dag >= i). Binnen die lus bevindt zich een "if-voorwaarde" (dag is gelijk aan i). Als deze voorwaarde waar is, wordt de uitvoerstroom afgedrukt en wordt de while-lus beรซindigd; anders wordt de variabele i verhoogd en herhaalt de lus zich.

Wanneer we de code uitvoeren, krijgen we de volgende uitvoer

Uitvoer is:

JSP While-lus

  • De uitvoer van deze code is โ€œits Monday'.

JSP Operaverdraaid

JSP Operators ondersteunt de meeste rekenkundige en logische operatoren die worden ondersteund door Java binnen expressietaal (EL) tags. Veelgebruikte operatoren worden hieronder genoemd:

Hieronder staan โ€‹โ€‹de operatoren:

. Toegang tot een boneneigenschap of kaartinvoer
[] Toegang tot een array- of lijstelement
() Groepeer een subexpressie om de evaluatievolgorde te wijzigen
+ Toevoeging
- Subtracde ontkenning of negatie van een waarde
* Vermenigvuldiging
/ of afd afdeling
% of mod Modulo (rest)
== of verg Test voor gelijkheid
!= of โ€‹โ€‹nee Test voor ongelijkheid
< of lt Test voor minder dan
> of gt Test voor groter dan
<= of le Test op minder dan of gelijk
>= of ge Test op groter dan of gelijk
&& of en Test op logische AND
|| of of Test op logische OR
! of niet Unary Booleaans complement
Leeg Test op lege variabelewaarden

In dit voorbeeld

  • We declareren twee variabelen num1 en num2 en nemen vervolgens een variabele num3, waarbij we de JSP-operator + by gebruiken om num1 en num2 op te tellen en num3 te krijgen.
  • Vervolgens controleren we of num3 niet gelijk is aan 0 met behulp van JSP-operatoren (!=, >) en
  • Neem vervolgens nog een variabele num4 door twee num1 te vermenigvuldigen en num2 krijgen we num4.

Al deze getallen moeten als uitvoer worden afgedrukt:

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

Uitleg van de code:

  • Code Regel 10: Variabele met de naam num1 wordt geรฏnitialiseerd op 10 en num2 op 50 in de expressietags
  • Code Regel 11: De variabele num3 is de som van num1 en num2 waarbij we de opteloperator gebruiken
  • Code Lijn 12-16: In de EL-tags hebben we een OR-voorwaarde gebruikt, een combinatie van logische en rekenkundige operatoren, om te controleren of num3 groter is dan 0 in de if-voorwaarde. De OR-voorwaarde wordt gebruikt wanneer een van de voorwaarden waar is; in dat geval wordt de if-voorwaarde uitgevoerd, waarin we de getallen "num1" en "num2" vermenigvuldigen en de uitvoer "num4" verkrijgen, waarna de uitvoerstroom wordt afgedrukt.

Wanneer u de bovenstaande code uitvoert, krijgt u de volgende uitvoer.

Output:

JSP Operaverdraaid

  • De eerste uitvoer is Nummer 4 is 500 (variabele num4, dat is num1*num2)
  • De tweede uitvoer is Nummer 3 is 60 (variabele num3 welke num1+num2)

Veelgestelde vragen

Expression Language (EL) vereenvoudigt de toegang tot gegevens die zijn opgeslagen in JavaBeans en impliciete objecten zoals request, session en application. Hiermee kunt u beknopte expressies en operatoren rechtstreeks in een JSP-pagina schrijven in plaats van... Java scriptjes.

EL gebruikt de syntaxis ${expressie}. Alles wat tussen de accolades staat, wordt tijdens de uitvoering geรซvalueerd en naar de uitvoerstroom gestuurd. Expressies kunnen worden gecombineerd met statische tekst en andere expressies.

De Expression Language werd geรฏntroduceerd in JSP 2.0. Deze taal is ontworpen om de behoefte aan Java Scriptlets bieden een eenvoudige manier om applicatiegegevens te benaderen en weer te geven.

AI kan converteren Java Scriptlets omzetten naar overzichtelijkere EL-expressies, de juiste operator suggereren en voorbeelden genereren voor lussen en voorwaardelijke instructies, helping Ontwikkelaars schrijven sneller beter leesbare JSP-pagina's.

Ja. AI kan ongeldige EL-syntaxis, verkeerd geplaatste accolades, ontbrekende bean-eigenschappen en typefouten signaleren en vervolgens correcties voorstellen, waardoor runtimefouten in JSP-pagina's worden verminderd.

Vat dit bericht samen met: