Najlepszy samouczek JSP Expression Language W 2024 r. W tym samouczku możesz dowiedzieć się Prosta składnia,EL Operator bazowy,Funkcja JSP EL,JSP EL ukryte obiekty,obiekty pageContext,Zakres Przedmioty,param i paramValues obiekty,obiekty nagłówka i headerValues,
JSP Expression Language (EL), aby uzyskać dostęp do danych przechowywanych w JavaBeans staje się bardzo proste. JSP EL może być albo wykorzystywane do tworzenia wyrażenia arytmetycznego można także stosować do tworzenia logicznej ekspresji. W wyrażeń JSP EL można użyć liczby całkowitej, liczby zmiennoprzecinkowe, sznurki, stałe true, false, nie jest null.
Zazwyczaj, gdy trzeba określić wartość nieruchomości, gdy znaczniki JSP, wystarczy użyć ciąg:
<jsp:setProperty name="box" property="perimeter" value="100"/>
Wyrażenie JSP EL pozwala określić wartość nieruchomości. Prosty składni ekspresja jest następujący:
${expr}
Przy czym wyrażenie odnosi się do wypowiedzi. W operatora rodzajowe JSP EL jest "." A "[]". Te dwa operatorzy umożliwiają dostęp do szerokiej gamy wbudowanych właściwości JavaBean JSP przez obiekt.
Na przykład, powyższa <jsp: setProperty> tag może być zapisane przy użyciu języka wyrażeń w następujący sposób:
<jsp:setProperty name="box" property="perimeter" value="${2*box.width+2*box.height}"/>
Gdy kompilator JSP, aby zobaczyć "$ {}" po formacie, generuje kod do oceny ekspresji i generuje zastępczych dla wartości wyrażenia w nieruchomości.
Można również używać języka ekspresji w zakładce tekst szablonu. Na przykład <jsp: text> tag prostu dodaje się do wyjścia tekście JSP:
<jsp:text> <h1>Hello JSP!</h1> </jsp:text>
Teraz, w: używając wyrażenia <tekst jsp> w organizmie, takich jak to:
<jsp:text> Box Perimeter is: ${2*box.width + 2*box.height} </jsp:text>
EL wyrażeń w nawiasach mogą być wykorzystane do zorganizowania sub-wyrażenie. Na przykład $ {(1 + 2) * 3 9} jest równa, ale $ {1 + (2 * 3)} = 7.
Aby wyłączyć ocenę wyrażeń EL, to trzeba użyć atrybutu isELIgnored dyrektywy page true:
<%@ page isELIgnored ="true|false" %>
W ten sposób wyrażenia EL są ignorowane. Jeśli jest ustawiona na false, pojemnik zostanie obliczona wyrażeń EL.
Wsparcie świadczone przez wyrażenie EL większości arytmetycznych i logicznych operatorów Java:
operatorzy | opis |
---|---|
, | Bean dostępu do właściwości lub wpisu mapowania |
[] | Uzyskaj dostęp tablicę lub listę elementów |
() | Zorganizuj sub-wyrażenie, aby zmienić priorytet |
+ | plus |
- | Zapisz lub ujemna |
* | Mnożenie |
/ Albo div | z wyjątkiem |
% Lub mod | modulo |
== Lub EQ | Test na równość |
! = Lub ne | Test sprawdzający czy nierówne |
<Albo lt | Sprawdzić, czy mniej niż |
> Albo gt | Test jest większa |
<= Lub le | Sprawdzić, czy mniejsza niż lub równa |
> = Lub ge | Sprawdzić, czy większa niż lub równa |
Albo i && | Testowanie i logika |
Albo czy || | Logika testów lub |
Lub nie | Test zanegowany |
pusty | Sprawdzenie, czy wartość null |
Funkcja JSP EL pozwala używać w wyrażeniach. Funkcje te muszą być zdefiniowane w bibliotece niestandardowych znaczników. Użyj funkcji składnia jest następująca:
${ns:func(param1, param2, pl.)}
ns odnosi się do przestrzeni nazw (namespace), func to nazwa funkcji, param1 odnosi się do pierwszego argumentu, param2 odnosi się do drugiego argumentu, i tak dalej. Na przykład, jest funkcją Fn: długość zdefiniowane w bibliotece JSTL może być taka, aby uzyskać długość łańcucha:
${fn:length("Get my length")}
Aby skorzystać z dowolnej funkcji bibliotecznych tag, trzeba będzie te biblioteki zainstalowane na serwerze, a następnie za pomocą tagu <taglib> zawiera biblioteki w pliku JSP.
Obsługuje JSP EL ukryte obiekty są wymienione w poniższej tabeli:
ukryte obiekty | opis |
---|---|
PageScope | strona zakres |
requestScope | żądanie zakres |
sessionScope | zakres sesji |
applicationScope | zakres aplikacji |
param | Zapytanie ciąg parametr obiektu |
paramValues | Parametr Zapytanie obiektu, kolekcja ciąg |
chodnikowiec | Nagłówek HTTP ciąg |
headerValues | nagłówek HTTP, kolekcja ciąg |
initParam | parametry inicjalizacji kontekstu |
ciastko | wartość Cookie |
pageContext | Obecna strona pageContext |
Można używać tych obiektów w wyrażeniu, jak przy użyciu tej samej zmiennej. Następny będzie dać kilka przykładów w celu lepszego zrozumienia tego pojęcia.
pageContext celem jest odniesienie do obiektu JSP pageContext. Przez obiektu pageContext, można uzyskać dostęp do obiektu żądania. Na przykład, aby uzyskać dostęp do obiektu żądania przekazywane w łańcuchu zapytania, na przykład:
${pageContext.request.queryString}
PageScope, requestScope, sessionScope zmienna applicationScope służy do uzyskania dostępu do danych przechowywanych w każdej różnych poziomach zakresu ich.
Na przykład, jeśli chcesz uzyskać dostęp do skrzynki applicationScope wyraźnie zmiennej warstwy, to można uzyskać: applicationScope.box.
param i paramValues przedmiot jest używany do dostępu do wartości parametrów za pomocą metod i request.getParameterValues metodę request.getParameter.
Na przykład, dostęp do parametru o nazwie zamówienia, można użyć tego wyrażenia: $ {param.order} lub {$ param [ "porządek"]}.
Poniższe przykłady pokazują, jak uzyskać dostęp do parametrów żądania nazwa użytkownika:
<%@ page import="java.io.*,java.util.*" %> <% String title = "Accessing Request Param"; %> <html> <head> <title><% out.print(title); %></title> </head> <body> <center> <h1><% out.print(title); %></h1> </center> <div align="center"> <p>${param["username"]}</p> </div> </body> </html>
Obiekt param zwraca pojedynczy łańcuch, obiektu paramValues jest zwracany tablicę ciągów.
Nagłówek i przedmiot headerValues służy do uzyskania dostępu do informacji nagłówka za pomocą metod i sposobu request.getHeaders request.getHeader.
Na przykład, aby uzyskać dostęp do informacji, zwany nagłówek User-Agent, można użyć tego wyrażenia: $ {header.user-agent} lub $ {header [ "user-agent"]}.
Poniższe przykłady pokazują, jak uzyskać dostęp do nagłówka User-agent:
<%@ page import="java.io.*,java.util.*" %> <% String title = "User Agent Example"; %> <html> <head> <title><% out.print(title); %></title> </head> <body> <center> <h1><% out.print(title); %></h1> </center> <div align="center"> <p>${header["user-agent"]}</p> </div> </body> </html>
Wyniki przedstawiają się następująco:
Obiekt nagłówek zwraca pojedynczą wartość, natomiast headerValues zwraca tablicę ciągów.