Latest web development tutorials

JSP Expression Language

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.


Prosta składnia

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.


EL Operator bazowy

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

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, ...)}

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.


JSP EL ukryte obiekty

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.


obiekty pageContext

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}

Zakres Przedmioty

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 ​​obiekty

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.


obiekty nagłówka i headerValues

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:

JSP wyrażenie języka

Obiekt nagłówek zwraca pojedynczą wartość, natomiast headerValues ​​zwraca tablicę ciągów.