Język wyrażeń w JSP

Co to jest język wyrażeń (EL)?

Expression Language (EL) to mechanizm ułatwiający dostępność danych przechowywanych w Java komponent bean i inne obiekty, takie jak żądanie, sesja i aplikacja, itd.

Istnieje wiele operatorów w JSP, które są używane w EL, takich jak operatory arytmetyczne i logiczne do wykonywania wyrażeń. Zostały wprowadzone w JSP 2.0

Składnia JSP języka wyrażeń (EL)

Składnia EL :$(wyrażenie)

  • W JSP wszystko, co jest obecne w nawiasach klamrowych, jest oceniane w czasie wykonywania i wysyłane do strumienia wyjściowego.
  • Wyrażenie jest prawidłowym wyrażeniem EL i można je zmieszać z tekstem statycznym oraz połączyć z innym wyrażeniem, aby utworzyć większe wyrażenie.

Aby lepiej zrozumieć, jak działa wyrażenie w JSP, zobaczmy poniższy przykład. W tym przykładzie zobaczymy, jak EL jest używany jako operator do dodawania dwóch liczb (1+2) i odpowiednio uzyskiwania wyniku.

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

Wyjaśnienie kodu:

  • Linia kodu 11: Język wyrażeń (EL) jest ustawiony, gdy dodajemy dwie liczby 1+2, stąd wynikiem będzie 3.

Po wykonaniu powyższego kodu otrzymasz następujący wynik.

Wydajność:

Język wyrażeń JSP

  • Wyrażenie jest następujące: 3 (ponieważ liczby 1+2 zostaną dodane i będą stanowić wynik)

Oświadczenia dotyczące kontroli przepływu:

JSP zapewnia moc Java do osadzenia w aplikacji. Możemy korzystać ze wszystkich interfejsów API i elementów składowych Java in Programowanie JSP włączając instrukcje przepływu sterowania, które obejmują podejmowanie decyzji i instrukcje pętli.

Poniżej opisano dwa typy instrukcji kontroli przepływu;

  1. Oświadczenia dotyczące podejmowania decyzji
  2. Instrukcje pętli

Oświadczenia dotyczące podejmowania decyzji:

Oświadczenie o podejmowaniu decyzji w JSP opiera się na tym, czy zestaw warunków jest prawdziwy, czy fałszywy. Instrukcja zachowa się odpowiednio.

Istnieją dwa rodzaje stwierdzeń decyzyjnych opisane poniżej:

  1. Jeśli inaczej
  2. wyłącznik

JSP Jeśli-w przeciwnym razie

Instrukcja „If else” jest podstawą wszystkich instrukcji przepływu sterowania i mówi programowi, aby wykonał określoną sekcję kodu tylko wtedy, gdy konkretny test ma wartość true.

Ten warunek służy do sprawdzania, czy więcej niż jeden warunek jest prawdziwy, czy fałszywy.

  • Jeśli pierwszy warunek jest spełniony, wykonywany jest „if block” i
  • jeśli ma wartość false, wykonywany jest „else block”.

Składnia instrukcji if – else:

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

W tym przykładzie przetestujemy warunek „if else” poprzez wzięcie zmiennej i sprawdzenie jej wartości, jeśli zmienna pasuje do tego, co zostało zainicjowane:

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

Wyjaśnienie kodu:

  • Linia kodu 10: Zmienna o nazwie miesiąc jest inicjalizowana wartością 5 w znacznikach wyrażeń
  • Linia kodu 11: W tagach EL znajduje się warunek „if” stwierdzający, że jeśli miesiąc jest równy 2 (warunek jest tu testowany jako prawdziwy lub fałszywy)
  • Linia kodu 12: Jeśli warunek jest spełniony, czyli zmienna miesiąc wynosi 2, wówczas zostanie wydrukowana do strumienia wyjściowego
  • Linia kodu 13-15: Jeśli powyższy warunek nie powiedzie się, zostanie on przeniesiony do części else we wszystkich innych przypadkach, w których instrukcja zostanie wydrukowana w strumieniu wyjściowym, a warunek zostanie zamknięty

Po wykonaniu powyższego kodu otrzymasz następujący wynik.

Wyjście:

JSP Jeśli-w przeciwnym razie

  • Ponieważ miesiąc, który mamy, to 5, co nie jest równe #2 (luty). Stąd mamy wynik „Dowolny miesiąc inny niż luty” (miesiąc jest wymieniony jako 5, stąd else jest wykonywane)

Przełącznik JSP

Treść instrukcji switch nazywana jest „blokiem przełącznika”.

  • Obudowa przełącznika służy do sprawdzania liczby możliwych ścieżek wykonania.
  • Przełącznika można używać ze wszystkimi typami danych
  • Instrukcje switch zawierają więcej niż jeden przypadek i jeden przypadek domyślny
  • Ocenia wyrażenie, a następnie wykonuje wszystkie polecenia następujące po dopasowanym przypadku

Składnia instrukcji 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 przełącznika rozpoczyna się jednym parametrem, który jest operatorem, który należy przekazać i
  • Następnie występują różne przypadki, które spełniają warunek i ten, który pasuje do operatora, jest wykonywany.

W poniższym przykładzie zdefiniowaliśmy zmienną tydzień i dopasowujemy ją do przypadku, w którym wartość jest prawdziwa. W tym przypadku tydzień wynosi 2, zatem 2nd case jest dopasowany, a wynikiem jest wtorek:

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

Wyjaśnienie kodu:

  • Linia kodu 10: Zmienna o nazwie tydzień jest inicjalizowana wartością 2 w znacznikach wyrażeń
  • Linia kodu 11: W znacznikach EL sprawa przełącznika rozpoczyna się, gdy jako parametr podaje się tydzień
  • Linia kodu 12 – 29: Wszystkie przypadki zostały wymienione począwszy od przypadku 0 do przypadku 5, gdzie wartość parametru tygodnia jest dopasowywana do przypadków i odpowiednio wydrukowany jest wynik. W tym przypadku wartość wynosi 2, dlatego w tym przypadku zostanie wykonany przypadek 2. Tutaj „out” jest klasą JSP, która zapisuje strumień wyjściowy dla wygenerowanej odpowiedzi, a „println” jest metodą tej klasy.
  • Linia kodu 30-32: Jeśli powyższe wszystkie przypadki zawiodą, zostanie przeniesiona do części domyślnej i zostanie wykonana, gdzie instrukcja zostanie wydrukowana w strumieniu wyjściowym, a warunek zostanie zamknięty

Po wykonaniu powyższego kodu otrzymasz następujący wynik.

Wyjście:

Przełącznik JSP

  • Dane wyjściowe w tym przypadku to wtorek, jak nazywa się drugi przypadek.

Instrukcje pętli

Pętla JSP For

Służy do iteracji elementów dla określonego warunku i ma trzy parametry.

  • Licznik zmiennych jest inicjowany
  • Warunek do momentu wykonania pętli
  • Licznik należy zwiększyć

Składnia pętli:

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

W tym przykładzie mamy pętlę for, która iteruje dopóki licznik nie będzie mniejszy od podanej liczby:

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

Wyjaśnienie kodu:

  1. Linia kodu 10: Zmienna o nazwie „num” w znacznikach wyrażeń ma wartość 5
  2. Linia kodu 11-14: W znacznikach EL „out” jest klasą JSP, a „println” jest metodą out, która wypisuje strumień wyjściowy i uruchamia pętlę for z trzema parametrami:
    • Zmienna i jest inicjowana na 0,
    • Warunek jest podany, gdy i ma być mniejsze niż zmienna lokalna num,
    • Wartość i jest zwiększana przy każdej iteracji pętli.

W treści „forloop” znajduje się klasa JSP, która wypisuje do strumienia wyjściowego metodę println, w której drukujemy zmienną i.

Po wykonaniu powyższego kodu otrzymasz następujący wynik.

Wyjście:

Pętla JSP For

  • Wydajność Numbers are 0 1 2 3 4. W tym przykładzie stawiamy warunek, że dopóki licznik nie będzie mniejszy od zmiennej, należy wykonać „pętlę for”. Liczba wynosi 5, więc pętla zacznie się od 0 i będzie trwać aż do 4 (5 razy). Stąd wynik.

JSP Podczas pętli

Służy do iteracji Elementy gdzie ma jeden parametr warunku.

Składnia:

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

W tym przykładzie mamy pętlę while, która będzie iterować, dopóki dzień nie będzie większy od licznika:

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

Wyjaśnienie kodu:

  • Linia kodu 10: W znacznikach wyrażeń zmienna o nazwie i ma wartość 1, a dzień ma wartość 2
  • Linia kodu 11-17: W znacznikach EL znajduje się pętla while, która będzie iterować do momentu ustawienia warunku tak, aby dzień był większy lub równy i zmienna była prawdziwa. (dzień>=i) Wewnątrz tego jest „jeśli warunek” (dzień jest równy i) i „jeśli warunek” jest prawdziwy, wówczas wydrukuje strumień wyjściowy i wyjdzie z pętli while, w przeciwnym razie zmienna i zostanie zwiększona i pętla iteruje.

Po wykonaniu kodu otrzymamy następujący wynik

Dane wyjściowe to:

JSP Podczas pętli

  • Wynikiem tego kodu będzie „its Monday".

JSP Operatorsy

JSP Operators obsługuje większość operatorów arytmetycznych i logicznych, które są obsługiwane przez Jawa w tagach języka wyrażeń (EL). Poniżej wymieniono często używane operatory:

Oto operatorzy:

. Uzyskaj dostęp do właściwości komponentu bean lub wpisu mapy
[] Uzyskaj dostęp do tablicy lub elementu listy
() Grupuj podwyrażenie, aby zmienić kolejność oceny
+ Dodatek
- Odejmowanie lub negacja wartości
* Mnożenie
/ lub div podział
% lub mod Modulo (pozostała część)
== lub równ Test na równość
!= lub nie Sprawdź nierówność
< lub lt Testuj za mniej niż
> lub gt Sprawdź, czy jest więcej niż
<= lub le Sprawdź, czy jest mniejszy lub równy
>= lub ge Sprawdź, czy jest większy lub równy
&& albo i Test logicznego AND
|| albo albo Sprawdź logiczne OR
! albo nie Jednoargumentowe uzupełnienie logiczne
pusty Testowanie pustych wartości zmiennych

W tym przykładzie

  • Deklarujemy dwie zmienne num1 i num2, a następnie bierzemy zmienną num3 i używamy operatora JSP + by, aby dodać num1 i num2 i uzyskać zmienną num3.
  • Następnie sprawdzamy warunek, czy num3 nie jest równe 0, używając operatorów JSP (!= , >) i
  • Następnie weź kolejną zmienną num4, mnożąc dwa num1 i num2, otrzymamy num4.

Wszystkie te liczby powinny zostać wydrukowane jako nasz wynik:

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

Wyjaśnienie kodu:

  • Linia kodu 10: Zmienna o nazwie num1 jest inicjowana na 10, a num2 na 50 w znacznikach wyrażeń
  • Linia kodu 11: Zmienna num3 jest sumą num1 i num2, gdzie używamy operatora dodawania
  • Linia kodu 12-16: W tagach EL użyliśmy warunku OR, który jest operatorem logicznym i operatorami arytmetycznymi, aby sprawdzić, czy num3 jest większe od 0 w warunku if. OR jest używany, gdy dowolny warunek jest prawdziwy, w takim przypadku wejdzie do „przypadku if”, w którym mnożymy dwie liczby „num1” i „num2” i uzyskujemy wynik w „num4”, a on wydrukuje strumień wyjściowy.

Po wykonaniu powyższego kodu otrzymasz następujący wynik.

Wyjście:

JSP Operatorsy

  • Pierwszym wyjściem jest Numer 4, czyli 500 (zmienna num4, która wynosi num1*num2)
  • Drugie wyjście to Numer 3, czyli 60 (zmienna num3, która wynosi num1+num2)

Podsumowanie

  • JSP Expression Language (EL) ułatwia dostęp aplikacji do danych przechowywanych w komponentach javabeans.
  • Umożliwia także tworzenie wyrażeń arytmetycznych i logicznych.
  • W tagach EL możemy używać liczb całkowitych. Liczby zmiennoprzecinkowe, ciągi znaków i wartości logiczne.
  • W JSP możemy także używać pętli i instrukcji decyzyjnych wykorzystujących znaczniki EL

Podsumuj ten post następująco: