Jezik izražavanja u JSP-u

⚡ Pametni sažetak

Izrazni jezik u JSP-u pojednostavljuje pristup podacima pohranjenim u JavaBeanovi i implicitni objekti kao što su zahtjev, sesija i aplikacija. Uveden u JSP 2.0, podržava aritmetičke, logičke i relacijske operatore, plus donošenje odluka i naredbe petlji napisane unutar EL oznaka.

  • 🧮 EL definiran: Pojednostavljuje pristup JavaBeanovi i implicitni objekti; dodano u JSP 2.0.
  • 🔣 Sintaksa: Unutar ${ } napišite izraze za evaluaciju tijekom izvođenja i ispis rezultata.
  • 🔀 Odlučivanje: Naredbe if-else i switch kontroliraju tok stranice.
  • 🔁 petlje: Naredbe for i while iteriraju kroz uvjete.
  • Operatorovi: Aritmetički, relacijski i logički operatori (equa, lt, and, or, empty).

Jezik izražavanja u JSP-u

Što je Expression Language (EL)?

Expression Language (EL) mehanizam je koji pojednostavljuje dostupnost podataka pohranjenih u Java bean komponenta i drugi objekti poput zahtjeva, sesije i aplikacije itd.

Postoje mnogi operatori u JSP-u koji se koriste u EL-u poput aritmetičkih i logičkih operatora za izvođenje izraza. Predstavljen je u JSP 2.0

JSP sintaksa jezika izražavanja (EL)

Sintaksa EL ${izraz}

  • U JSP-u, sve što se nalazi u vitičastim zagradama procjenjuje se tijekom izvođenja i šalje u izlazni tok.
  • Izraz je važeći EL izraz i može se miješati sa statičnim tekstom i može se kombinirati s drugim izrazom kako bi se formirao veći izraz.

Da bismo dobili bolju predodžbu o tome kako izraz funkcionira u JSP-u, vidjet ćemo primjer u nastavku. U ovom primjeru ćemo vidjeti kako se EL koristi kao operator za zbrajanje dva broja (1+2) i dobivanje izlaza.

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

Objašnjenje Code:

  • Code Redak 11: Jezik izražavanja (EL) je postavljen tako da zbrajamo dva broja 1+2, stoga će dati izlaz kao 3.

Kada izvršite gornji kod, imat ćete sljedeći izlaz.

Izlaz:

JSP Expression Language

  • Izraz je: 3 (Brojevi 1+2 će se zbrajati i služiti kao izlaz)

Izjave o kontroli toka:

JSP pruža moć Java biti ugrađen u aplikaciju. Možemo koristiti sve API-je i građevne blokove Java in JSP programiranje uključujući izjave o tijeku upravljanja koje uključuju donošenje odluka i izjave petlje.

Postoje dvije vrste izjava o kontroli protoka koje su opisane u nastavku;

  1. Izjave o donošenju odluka
  2. Izjave petlje

Izjave o donošenju odluka:

Izjava o donošenju odluka u JSP-u temelji se na tome je li postavljeni uvjet istinit ili lažan. Izjava će se ponašati u skladu s tim.

Postoje dvije vrste izjava o donošenju odluka koje su opisane u nastavku:

  1. Ako – inače
  2. prebaciti

JSP If-else

Naredba "If else" osnovna je od svih naredbi tijeka kontrole i govori programu da izvrši određeni dio koda samo ako se određeni test ocijeni istinitim.

Ovaj se uvjet koristi za testiranje više od jednog uvjeta jesu li istiniti ili lažni.

  • Ako je prvi uvjet istinit, tada se izvršava “if block” i
  • ako je false tada se izvršava “else block”.

Sintaksa za if – else naredbu:

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

U ovom primjeru, testirat ćemo uvjet "if else" uzimajući varijablu i provjeravajući vrijednost odgovara li varijabla onome što je inicijalizirano:

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

Objašnjenje koda:

  • Code Redak 10: Varijabla pod nazivom mjesec inicijalizirana je na 5 u oznakama izraza
  • Code Redak 11: U EL oznakama postoji "uvjet ako" koji navodi da ako je mjesec jednak 2 (uvjet se ovdje testira kao istinit ili netočan)
  • Code Redak 12: Ako je uvjet istinit da je varijabla mjesec 2 tada će se ispisati u izlazni tok
  • Code Redak 13-15: Ako gornji if uvjet ne uspije, premjestit će se na else dio za sve ostale slučajeve u kojima će se izjava ispisati u izlazni tok i uvjet je zatvoren

Kada izvršite gornji kod, imat ćete sljedeći izlaz.

Izlaz:

JSP If-else

  • Budući da je mjesec koji imamo 5 što nije jednako #2 (veljača). Dakle, imamo izlaz "Bilo koji mjesec osim veljače" (mjesec se spominje kao 5, stoga se drugi izvršavaju)

JSP prekidač

Tijelo naredbe switch naziva se "switch block".

  • Slučaj prekidača koristi se za provjeru broja mogućih putanja izvršenja.
  • Prekidač se može koristiti sa svim vrstama podataka
  • Naredbe switch sadrže više od jednog slučaja i jedan zadani slučaj
  • On procjenjuje izraz i zatim izvršava sve naredbe koje slijede odgovarajući slučaj

Sintaksa za naredbu switch:

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;
}
  • Blok prekidača počinje s jednim parametrom, a to je operator koji treba proslijediti i
  • Zatim postoje različiti slučajevi koji osiguravaju uvjet i koji god odgovara operatoru taj se slučaj izvršava.

U donjem primjeru definirali smo varijablu tjedan i ona se podudara sa slučajem koji god je istinit. U ovom slučaju, tjedan je 2, dakle 2nd velika i mala slova se podudaraju, a izlaz je utorak:

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

Objašnjenje Code:

  • Code Redak 10: Varijabla pod nazivom tjedan inicijalizirana je na 2 u oznakama izraza
  • Code Redak 11: U EL oznakama pokreće se slučaj switch gdje se tjedan prosljeđuje kao parametar
  • Code Redak 12 – 29: Svi slučajevi su spomenuti počevši od slučaja 0 do slučaja 5 gdje se vrijednost parametra tjedna podudara sa slučajevima, te se u skladu s tim izlaz ispisuje. U ovom slučaju vrijednost je 2, stoga će se u ovom slučaju izvršiti slučaj 2. Ovdje je "out" klasa JSP-a koja piše izlazni tok za generirani odgovor, a "println" je metoda te klase.
  • Code Redak 30-32: Ako gore navedeni slučajevi ne uspije, premjestit će se na zadani dio i izvršit će se, gdje će se izjava ispisati u izlazni tok i uvjet je zatvoren

Kada izvršite gornji kod, imat ćete sljedeći izlaz.

Izlaz:

JSP prekidač

  • Izlaz u ovom slučaju je utorak jer se poziva 2. slučaj.

Izjave petlje:

JSP For petlja

Služi za ponavljanje elemenata za određeni uvjet, a ima tri parametra.

  • Brojač varijable je inicijaliziran
  • Uvjet dok se petlja mora izvršiti
  • Brojač se mora povećati

Sintaksa petlje for:

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

U ovom primjeru imamo for petlju koja ponavlja sve dok brojač ne bude manji od zadanog broja:

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

Objašnjenje koda:

  1. Code Redak 10: Varijabla pod nazivom "num" inicijalizirana je na 5 u oznakama izraza
  2. Code Redak 11-14: U EL oznakama, "out" je klasa JSP-a, a "println" je metoda out koja ispisuje u izlaznom toku i pokreće se for petlja koja ima tri parametra:
    • Varijabla i inicijalizirana je na 0,
    • Uvjet je dan gdje je i manji od lokalne varijable num,
    • I povećava se svakim ponavljanjem vremenske petlje.

U tijelu "forloop" postoji klasa JSP-a koja ispisuje u izlazni tok pomoću metode println gdje ispisujemo varijablu i.

Kada izvršite gornji kod, imat ćete sljedeći izlaz.

Izlaz:

JSP For petlja

  • Izlaz Numbers su 0 1 2 3 4. U ovom primjeru, dajemo uvjet da sve dok brojač ne bude manji od jednakog varijabli, mora se izvršiti "for petlja". Broj je 5 tako da će petlja započeti od 0 i trajati do 4 (5 puta). Stoga izlaz.

JSP While petlja

Koristi se za ponavljanje elementi pri čemu ima jedan parametar stanja.

Sintaksa:

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

U ovom primjeru, imamo while petlju koja će se ponavljati dok dan ne bude veći od jednakog brojaču:

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

Objašnjenje koda:

  • Code Redak 10: Varijabla pod nazivom i inicijalizirana je na 1, a dan je 2 u oznakama izraza
  • Code Redak 11-17: U EL oznakama postoji "while petlja" koja će iterirati dok se ne postavi uvjet, kao da će, ako je dan veći ili jednak i-toj varijabli, biti istinito. (dan>=i) Unutar toga postoji "ako je uvjet" (dan je jednak i) i "ako je uvjet" istinit, tada će se ispisati izlazni tok i izaći će se iz while petlje, inače će se varijabla i povećati i petlja će iterirati.

Kada izvršimo kod, imat ćemo sljedeći izlaz

Izlaz je:

JSP While petlja

  • Izlaz ovog koda bit će "njegov Monday".

JSP Operaulagatelji

JSP Operators podržava većinu svojih aritmetičkih i logičkih operatora koje podržava Java unutar oznaka jezika izraza (EL). Operatori koji se često koriste navedeni su u nastavku:

Sljedeći su operateri:

. Pristupite svojstvu beana ili unosu karte
[] Pristup elementu polja ili popisa
() Grupirajte podizraz za promjenu redoslijeda vrednovanja
+ Dodatak
- ispodtraccija ili negacija vrijednosti
* Množenje
/ ili div Podjela
% ili mod Modulo (ostatak)
== ili jed Testirajte jednakost
!= ili ne Ispitajte nejednakost
< ili lt Testirajte za manje od
> ili gt Ispitajte za veće od
<= ili le Testirajte manje od ili jednako
>= ili ge Testirajte veće od ili jednako
&& ili i Testirajte logičko I
|| ili ili Testirajte logičko ILI
! ili ne Unarni Booleov komplement
prazan Testirajte prazne vrijednosti varijable

U ovom primjeru

  • Deklariramo dvije varijable num1 i num2, a zatim uzimamo varijablu num3, gdje koristimo JSP operator + by da zbrojimo num1 i num2 i dobijemo num3.
  • Zatim provjeravamo uvjet je li num3 različit od 0 korištenjem JSP operatora (!=, >) i
  • Zatim uzmite drugu varijablu num4 množenjem dva num1 i num2 dobivamo num4.

Ovi svi brojevi trebaju biti ispisani kao naš rezultat:

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

Objašnjenje koda:

  • Code Redak 10: Varijabla pod nazivom num1 inicijalizirana je na 10, a num2 na 50 u oznakama izraza
  • Code Redak 11: Varijabla num3 je zbroj num1 i num2 gdje koristimo operator zbrajanja
  • Code Redak 12-16: U EL oznakama koristili smo OR uvjet koji je logički operator i aritmetičke operatore za provjeru je li broj3 veći od 0 u if uvjetu. OR se koristi kada je bilo koji uvjet istinit, u takvom slučaju ući će u "if slučaj" gdje množimo dva broja "broj1" i "broj2" i dobivamo izlaz u "broj4" i ispisati izlazni tok.

Kada izvršite gornji kod, imat ćete sljedeći izlaz.

Izlaz:

JSP Operaulagatelji

  • Prvi izlaz je Broj 4 je 500 (varijabla num4 koja je num1*num2)
  • Drugi izlaz je broj 3 je 60 (varijabla num3 koja je num1+num2)

Pitanja i odgovori

Izrazni jezik (EL) pojednostavljuje pristup podacima pohranjenim u JavaBeanovi i implicitni objekti poput zahtjeva, sesije i aplikacije. Omogućuje vam pisanje sažetih izraza i operatora izravno na JSP stranici umjesto Java skriptleti.

EL koristi sintaksu ${expression}. Sve što se nalazi unutar zagrada se procjenjuje tijekom izvođenja i šalje u izlazni tok. Izrazi se mogu kombinirati sa statičkim tekstom i drugim izrazima.

Izrazni jezik uveden je u JSP 2.0. Dizajniran je kako bi se smanjila potreba za Java skriptlete pružajući jednostavan način pristupa i prikaza podataka aplikacije.

Umjetna inteligencija može pretvoriti Java skriptlete pretvoriti u čišće EL izraze, predložiti pravi operator i generirati primjere za petlje i uvjetne izraze, helping programeri brže pišu čitljivije JSP stranice.

Da. AI može označiti nevažeću EL sintaksu, neusklađene zagrade, nedostajuća svojstva beana i probleme s tipom, a zatim predložiti ispravke, smanjujući pogreške tijekom izvođenja na JSP stranicama.

Sažmite ovu objavu uz: