Latest web development tutorials

JSP Expression Language

JSP Expression Language (EL) in modo che i dati di accesso memorizzati in un JavaBean diventa molto semplice. JSP EL può essere usata per creare un'espressione aritmetica può anche essere utilizzato per creare un'espressione logica. In JSP EL espressioni possono utilizzare interi, numeri in virgola mobile, stringhe, costanti vero, falso, non c'è nulla.


Una sintassi semplice

In genere, quando è necessario specificare un valore di proprietà quando i tag JSP, è sufficiente utilizzare la stringa:

<jsp:setProperty name="box" property="perimeter" value="100"/>

espressione JSP EL consente di specificare un valore di proprietà. Una semplice sintassi delle espressioni è la seguente:

${expr}

In cui, espr si riferisce alla espressione. Nella JSP EL operatore generico è "." E "[]". Questi due operatori consentono di accedere a una vasta gamma di proprietà incorporati JSP JavaBean attraverso l'oggetto.

Ad esempio, il sopra <jsp: setProperty> tag può essere riscritta utilizzando il linguaggio espressione come segue:

<jsp:setProperty name="box" property="perimeter" 
                 value="${2*box.width+2*box.height}"/>

Quando il compilatore JSP per vedere le "$ {}" dopo il formato, genera il codice per valutare l'espressione, e genera un sostituto per sostituire il valore dell'espressione nella proprietà.

È inoltre possibile utilizzare il linguaggio delle espressioni nella scheda modello di testo. Ad esempio, <jsp: text> tag semplicemente essere inserito nel corpo del testo di uscita JSP:

<jsp:text>
<h1>Hello JSP!</h1>
</jsp:text>

Ora, in: utilizzando l'espressione <text jsp> tag nel corpo, in questo modo:

<jsp:text>
Box Perimeter is: ${2*box.width + 2*box.height}
</jsp:text>

EL espressioni tra parentesi possono essere utilizzati per organizzare sub-espressione. Per esempio $ {(1 + 2) * 3 9 uguale}, ma $ {1 + (2 * 3)} = 7.

Desidera disabilitare la valutazione delle espressioni EL, allora avete bisogno di utilizzare l'attributo direttiva di pagina isELIgnored true:

<%@ page isELIgnored ="true|false" %>

Così, espressioni EL vengono ignorati. Se impostato su false, il contenitore sarà calcolato espressioni EL.


EL operatore sottostante

supporto alle espressioni EL fornito dalla maggior parte degli operatori aritmetici e logici Java:

operatori descrizione
. Bean accedere a una proprietà o una voce di mapping
[] Accedere a un array o lista di elementi
() Organizzare una sotto-espressione per cambiare la priorità
+ più
- Salvare o negativo
* moltiplicare
/ Div O tranne
% O mod Modulo
== O eq Test per l'uguaglianza
! = O NE Verificare se disuguale
<O LT Verificare se meno
> O gt La prova è superiore
<= O le Verificare se minore o uguale
> = O GE Verificare se maggiore o uguale
&& Or e la logica di test e
|| Or o la logica di prova o
! O non prova negato
vuoto Verificare se nulla

La funzione JSP EL

funzione di JSP EL consente di utilizzare nelle espressioni. Queste funzioni devono essere definite in una libreria di tag personalizzato. Utilizzare la sintassi della funzione è la seguente:

${ns:func(param1, param2, ...)}

ns riferisce a uno spazio (namespace), func è il nome della funzione, param1 riferisce al primo argomento, param2 riferisce al secondo argomento, e così via. Ad esempio, vi è una funzione fn: lunghezza, definita nella libreria JSTL può essere come questo per ottenere la lunghezza di una stringa:

${fn:length("Get my length")}

Per utilizzare una qualsiasi delle funzioni di libreria di tag, è necessario queste librerie installate sul server, e quindi utilizzare il tag <taglib> contiene le librerie nel file JSP.


JSP EL oggetti impliciti

Supporta JSP EL oggetti impliciti sono elencati nella seguente tabella:

Gli oggetti nascosti descrizione
pageScope pagina Ambito
requestScope richiesta portata
sessionScope scope di sessione
applicationScope ambito di applicazione
param Richiesta stringa di parametri oggetto
paramValues Parametro Richiesta oggetto, collezione stringa
testata stringa di intestazione HTTP
headerValues intestazione HTTP, collezione stringa
initParam parametri di inizializzazione Contesto
biscotto valore del cookie
pageContext Pagina corrente pageContext

È possibile utilizzare questi oggetti in una espressione, come utilizzando la stessa variabile. Successivo darà alcuni esempi per comprendere meglio questo concetto.


oggetti pageContext

oggetto pageContext è un riferimento all'oggetto JSP pageContext. Con l'oggetto pageContext, è possibile accedere l'oggetto di richiesta. Ad esempio, per accedere all'oggetto di richiesta passato nella stringa di query, in questo modo:

${pageContext.request.queryString}

Ambito di applicazione oggetti

pageScope, requestScope, sessionScope, variabile applicationScope viene utilizzato per accedere ai dati memorizzati in ogni livello scoping variabile.

Per esempio, se avete bisogno di accedere in modo esplicito dialogo applicationScope strato variabile, si può accedere: applicationScope.box.


param e paramValues ​​oggetti

param e paramValues ​​oggetto viene utilizzato per accedere ai valori dei parametri utilizzando il metodo request.getParameter metodi e request.getParameterValues.

Ad esempio, l'accesso ad un parametro d'ordine di nome, è possibile utilizzare questa espressione: $ {} param.order, o $ {param [ "ordine"]}.

I seguenti esempi mostrano come accedere al parametro di richiesta nome utente:

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

oggetto param restituisce una singola stringa, oggetto paramValues ​​viene restituita una matrice di stringhe.


oggetti di intestazione e headerValues

intestazione e oggetto headerValues ​​viene utilizzato per accedere alle informazioni di intestazione utilizzando i metodi e il metodo request.getHeaders request.getHeader.

Ad esempio, per accedere alle informazioni, denominata un'intestazione user-agent, è possibile usare questa espressione: $ {header.user-agente} o {$ intestazione [ "user-agent"]}.

I seguenti esempi mostrano come accedere alla intestazione 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>

I risultati sono i seguenti:

jsp-espressione in lingua

oggetto intestazione restituisce un singolo valore, mentre headerValues ​​restituisce un array di stringhe.