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ść:
- 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;
- Oświadczenia dotyczące podejmowania decyzji
- 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:
- Jeśli inaczej
- 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:
- 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:
- 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:
- Linia kodu 10: Zmienna o nazwie „num” w znacznikach wyrażeń ma wartość 5
- 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:
- 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:
- 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:
- 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






