Jazyk výrazů v JSP

Co je jazyk výrazů (EL)?

Expression Language (EL) je mechanismus, který zjednodušuje přístup k uloženým datům Java komponenta bean a další objekt, jako je požadavek, relace a aplikace atd.

V JSP existuje mnoho operátorů, které se v EL používají jako aritmetické a logické operátory k provádění výrazu. Byl představen v JSP 2.0

JSP syntaxe jazyka výrazů (EL)

Syntaxe EL :$(výraz)

  • V JSP je vše, co je přítomno ve složených závorkách, vyhodnoceno za běhu odeslaného do výstupního proudu.
  • Výraz je platný výraz EL a může být smíchán se statickým textem a může být kombinován s jiným výrazem pro vytvoření většího výrazu.

Pro lepší představu o tom, jak výraz funguje v JSP, uvidíme níže uvedený příklad. V tomto příkladu uvidíme, jak se EL používá jako operátor k sečtení dvou čísel (1+2) a získání výstupu.

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

Vysvětlení Code:

  • Code Řádek 11: Jazyk výrazů (EL) je nastaven tam, kde přidáváme dvě čísla 1+2, takže výstup bude 3.

Když spustíte výše uvedený kód, budete mít následující výstup.

Výstup:

Výrazový jazyk JSP

  • Výraz je: 3 (jako čísla 1+2 budou přidána a budou sloužit jako výstup)

Prohlášení o řízení toku:

JSP poskytuje sílu Java k zabudování do aplikace. Můžeme použít všechna API a stavební bloky Java in JSP programování včetně příkazů toku řízení, které zahrnují rozhodování a příkazy smyčky.

Níže jsou popsány dva typy příkazů řízení toku;

  1. Rozhodovací výroky
  2. Prohlášení o smyčce

Rozhodovací prohlášení:

Rozhodovací výrok v JSP je založen na tom, zda je nastavená podmínka pravdivá nebo nepravdivá. Prohlášení se podle toho bude chovat.

Níže jsou popsány dva typy rozhodovacích prohlášení:

  1. Pokud – jinak
  2. přepnout

JSP Pokud-jinak

Příkaz „If else“ je základním prvkem všech příkazů řídicího toku a říká programu, aby provedl určitou část kódu pouze v případě, že se konkrétní test vyhodnotí jako pravdivý.

Tato podmínka se používá k testování více než jedné podmínky, zda jsou pravdivé nebo nepravdivé.

  • Pokud je první podmínka pravdivá, provede se „if block“ a
  • pokud je nepravda, provede se „else block“.

Syntaxe příkazu if – else:

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

V tomto příkladu otestujeme podmínku „jestliže“ tím, že vezmeme proměnnou a zkontrolujeme hodnotu, zda se proměnná shoduje s tím, co je inicializováno:

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

Vysvětlení kódu:

  • Code Řádek 10: Proměnná pojmenovaná měsíc je inicializována na 5 ve značkách výrazu
  • Code Řádek 11: V EL tagech je „if podmínka“, která uvádí, že pokud je měsíc roven 2 (podmínka je zde testována jako pravdivá nebo nepravdivá)
  • Code Řádek 12: Pokud platí podmínka, že proměnná měsíc je 2, vytiskne se do výstupního proudu
  • Code Řádek 13–15: Pokud výše uvedená podmínka selže, přesune se do části else pro všechny ostatní případy, kdy se příkaz vytiskne do výstupního proudu a podmínka je uzavřena

Když spustíte výše uvedený kód, budete mít následující výstup.

Výstup:

JSP Pokud-jinak

  • Od měsíce, který máme, je 5, což se nerovná #2 (únor). Máme tedy výstup „Kterýkoli měsíc jiný než únor“ (měsíc je uveden jako 5, proto se provádějí ostatní)

Přepínač JSP

Tělo příkazu switch se nazývá „blok přepínače“.

  • Případ přepínače se používá ke kontrole počtu možných cest provedení.
  • Přepínač lze použít se všemi datovými typy
  • Příkazy switch obsahují více než jeden případ a jeden výchozí případ
  • Vyhodnotí výraz a poté provede všechny příkazy po odpovídající velikosti písmen

Syntaxe příkazu 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;
}
  • Spínací blok začíná jedním parametrem, kterým je operátor, který je třeba předat a
  • Pak existují různé případy, které poskytují podmínku, a podle toho, který odpovídá operátorovi, se případ provede.

V níže uvedeném příkladu jsme definovali proměnnou týden a ta se shoduje s případem, který je pravdivý. V tomto případě je týden 2, tedy 2nd případ se shoduje a výstupem je úterý:

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

Vysvětlení Code:

  • Code Řádek 10: Proměnná pojmenovaná týden je ve značkách výrazu inicializována na 2
  • Code Řádek 11: V EL tagech je spínací skříň spuštěna, kde je jako parametr předán týden
  • Code Řádek 12 – 29: Byly uvedeny všechny případy počínaje případem 0 až případem 5, kde je hodnota parametru týdne shodná s případy a podle toho je výstup vytištěn. V tomto případě je hodnota 2, proto se v tomto případě provede případ 2. Zde „out“ je třída JSP, která zapisuje výstupní proud pro generovanou odpověď a „println“ je metoda této třídy.
  • Code Řádek 30–32: Pokud všechny výše uvedené případy selžou, přesune se do výchozí části a provede se, kde se příkaz vytiskne do výstupního proudu a podmínka je uzavřena

Když spustíte výše uvedený kód, budete mít následující výstup.

Výstup:

Přepínač JSP

  • Výstupem je v tomto případě úterý, jak se nazývá 2. případ.

Prohlášení o smyčce

Smyčka JSP For

Používá se pro iteraci prvků pro určitou podmínku a má tři parametry.

  • Počítadlo proměnných je inicializováno
  • Podmínka, dokud nebude nutné provést smyčku
  • Počítadlo musí být zvýšeno

Syntaxe smyčky:

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

V tomto příkladu máme cyklus for, který iteruje, dokud není čítač menší než dané číslo:

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

Vysvětlení kódu:

  1. Code Řádek 10: Proměnná s názvem „num“ je ve značkách výrazu inicializována na 5
  2. Code Řádek 11–14: Ve značkách EL je „out“ třída JSP a „println“ je metoda, která spustí tisk ve výstupním proudu a smyčku for, která má tři parametry:
    • Proměnná i je inicializována na 0,
    • Podmínka je dána, kde i má být menší než lokální proměnná num,
    • A i se zvýší pokaždé, když se iteruje časová smyčka.

V těle „forloop“ je třída JSP, která tiskne do výstupního proudu metodou println, kde tiskneme proměnnou i.

Když spustíte výše uvedený kód, budete mít následující výstup.

Výstup:

Smyčka JSP For

  • Výstup Numbers jsou 0 1 2 3 4. V tomto příkladu dáváme podmínku, že dokud nebude čítač menší než roven proměnné, musí se provést „cyklus for“. Číslo je 5, takže smyčka začne od 0 a poběží do 4 (5krát). Proto ten výstup.

Smyčka JSP While

Používá se k iteraci prvky kde má jeden parametr podmínky.

Syntaxe:

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

V tomto příkladu máme smyčku while, která se bude opakovat, dokud nebude den větší než rovný čítači:

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

Vysvětlení kódu:

  • Code Řádek 10: Proměnná s názvem i je inicializována na 1 a den je 2 ve značkách výrazu
  • Code Řádek 11–17: Ve značkách EL existuje „smyčka while“, která se bude opakovat, dokud nebudeme mít podmínku nastavenou tak, že proměnná bude pravdivá, pokud je den větší nebo roven i. (den>=i) V rámci toho je „if podmínka“ (den se rovná i) a „pokud podmínka“ je pravdivá, pak vytiskne výstupní proud a opustí smyčku while, jinak se proměnná i zvýší a smyčka se opakuje.

Když spustíme kód, budeme mít následující výstup

Výstup je:

Smyčka JSP While

  • Výstupem tohoto kódu bude „jeho Monday".

JSP Operatorů

JSP Operators podporuje většinu svých aritmetických a logických operátorů, které jsou podporovány Jáva ve značkách výrazového jazyka (EL). Níže jsou uvedeny často používané operátory:

Následují operátoři:

. Přístup k vlastnosti fazole nebo záznamu na mapě
[] Přístup k prvku pole nebo seznamu
() Seskupte podvýraz a změňte pořadí vyhodnocení
+ Přidání
- Vtracování nebo negace hodnoty
* Násobení
/ nebo div Divize
% nebo mod Modulo (zbytek)
== nebo ekv Test na rovnost
!= nebo ne Test na nerovnost
< nebo lt Test na méně než
> nebo gt Test na větší než
<= nebo le Test na menší nebo rovno
>= nebo ge Test na větší nebo rovno
&& nebo a Test na logické AND
|| nebo nebo Test na logické OR
! nebo ne Unární booleovský doplněk
Prázdný Test na prázdné hodnoty proměnných

V tomto příkladu

  • Deklarujeme dvě proměnné num1 a num2 a poté vezmeme proměnnou num3, kde pomocí operátoru JSP + by přidáme num1 a num2 a získáme num3.
  • Poté zkontrolujeme podmínku, zda se num3 nerovná 0 pomocí operátorů JSP (!= , >) a
  • Pak vezměte další proměnnou num4 vynásobením dvou num1 a num2 dostaneme num4.

Všechna tato čísla by měla být vytištěna jako náš výstup:

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

Vysvětlení kódu:

  • Code Řádek 10: Proměnná s názvem num1 je ve značkách výrazu inicializována na 10 a num2 na 50
  • Code Řádek 11: Proměnná num3 je součtem čísel num1 a num2, kde používáme operátor sčítání
  • Code Řádek 12–16: V EL tagech jsme použili podmínku OR, což je logický operátor a aritmetické operátory ke kontrole, zda je číslo 3 větší než 0 v podmínce if. OR se používá, když je splněna jakákoli podmínka, v takovém případě vstoupí do „if case“, kde násobíme dvě čísla „num1“ a „num2“ a získáme výstup v „num4“ a vytiskne výstupní proud.

Když spustíte výše uvedený kód, budete mít následující výstup.

Výstup:

JSP Operatorů

  • První výstup je Číslo 4 je 500 (proměnná num4, což je num1*num2)
  • Druhý výstup je Číslo 3 je 60 (proměnná num3, která num1+num2)

Shrnutí

  • JSP Expression Language (EL) usnadňuje přístup k aplikaci pro data uložená v komponentách javabeans.
  • Umožňuje také vytvářet výrazy, které jsou jak aritmetické, tak logické.
  • V EL tagech můžeme použít celá čísla. Čísla s plovoucí desetinnou čárkou, řetězce a booleovské hodnoty.
  • V JSP můžeme také používat smyčky a rozhodovací příkazy pomocí EL tagů

Shrňte tento příspěvek takto: