Latest web development tutorials

JSP lenguaje de expresión

JSP Language Expresión (EL) de modo que los datos de acceso almacenados en un JavaBean se vuelve muy simple. JSP EL o bien se puede utilizar para crear una expresión aritmética también se puede utilizar para crear una expresión lógica. En las expresiones JSP EL pueden utilizar enteros, números de punto flotante, cadenas, constantes verdadero, falso, no es nulo.


Una sintaxis sencilla

Normalmente, cuando se necesita especificar un valor de propiedad cuando las etiquetas JSP, sólo tiene que utilizar la cadena a:

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

EL JSP expresión le permite especificar un valor de propiedad. Una sintaxis expresión simple es el siguiente:

${expr}

En el que, expr se refiere a la expresión. En el operador genérico JSP EL es "." Y "[]". Estos dos operadores le permiten acceder a una amplia variedad de propiedades JSP JavaBean incrustados a través del objeto.

Por ejemplo, el anterior <jsp: setProperty> etiqueta se puede reescribir usando el lenguaje de expresión como sigue:

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

Cuando el compilador JSP para ver los "$ {}" después de que el formato, se genera código para evaluar la expresión, y genera un sustituto para reemplazar el valor de la expresión en la propiedad.

También puede utilizar el lenguaje de expresión en la pestaña de texto de la plantilla. Por ejemplo, <jsp: text> etiqueta simplemente se inserta en el cuerpo del texto de salida JSP:

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

Ahora, en: el uso de la expresión <jsp texto> en el cuerpo, como esto:

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

expresiones EL en paréntesis se pueden utilizar para organizar sub-expresión. Por ejemplo $ {(1 + 2) * 3 es igual a 9}, pero $ {1 + (2 * 3)} = 7.

Desee deshabilitar la evaluación de expresiones EL, entonces es necesario utilizar el atributo isELIgnored directiva de página en true:

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

Por lo tanto, las expresiones EL se ignoran. Si se establece en false, el contenedor se calcula expresiones EL.


EL operador subyacente

El soporte de expresiones EL proporcionado por la mayoría de los operadores aritméticos y lógicos de Java:

operadores descripción
. Frijol acceso a una propiedad o una entrada de asignación
[] Acceder a una matriz o lista de elementos
() Organizar una sub-expresión para cambiar la prioridad
+ más
- Guardar o negativo
* Multiplicar
/ Div O excepto
O mod% Modulo
== O eq Prueba para la igualdad
! = O ne Probar si la desigualdad
<O lt Probar si menos de
> O gt La prueba es mayor que
<= O le Probar si menor o igual
> = O ge Probar si mayor o igual
&& O y la lógica de prueba y
|| O o la lógica de prueba o
! O no prueba negada
vacía Probar si nula

La función JSP EL

JSP EL función le permite utilizar en las expresiones. Estas funciones deben estar definidas en una biblioteca de etiquetas personalizadas. Utilice la sintaxis de la función es la siguiente:

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

ns se refiere a un espacio de nombres (namespace), func es el nombre de la función, param1 se refiere al primer argumento, param2 se refiere al segundo argumento, y así sucesivamente. Por ejemplo, hay una función fn: longitud, que se define en la biblioteca JSTL puede ser como este para obtener la longitud de una cadena:

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

Para utilizar cualquiera de las funciones de la biblioteca de códigos, necesitará instalados en el servidor de estas bibliotecas, y luego usar la etiqueta <taglib> contiene las bibliotecas en el archivo JSP.


objetos implícitos JSP EL

Soporta objetos implícitos JSP EL se enumeran en la siguiente tabla:

Los objetos ocultos descripción
PageScope La página de alcance
requestScope solicitud de alcance
sessionScope ámbito de sesión
applicationScope ámbito de aplicación
param Solicitud cadena de parámetros de objetos
paramValues Parámetro solicitud objeto, conjunto de cadenas
encabezamiento cadena de encabezado HTTP
headerValues cabecera HTTP, conjunto de cadenas
initParam parámetros de contexto de inicialización
galleta valor de la cookie
pageContext Página actual pageContext

Puede utilizar estos objetos en una expresión, como el uso de la misma variable. A continuación dará algunos ejemplos para entender mejor este concepto.


objetos pageContext

pageContext objeto es una referencia al objeto JSP pageContext. Por pageContext objeto, se puede acceder al objeto de solicitud. Por ejemplo, para acceder al objeto solicitud aprobada en la cadena de consulta, así:

${pageContext.request.queryString}

alcance Objetos

PageScope, requestScope, sessionScope, variables applicationScope se utiliza para acceder a los datos almacenados en cada uno de los niveles de alcance variable.

Por ejemplo, si necesita acceder a la caja de forma explícita applicationScope capa variable, se puede acceder a: applicationScope.box.


param y paramValues ​​objetos

param y paramValues ​​objeto se utiliza para acceder a los valores de parámetros mediante el método request.getParameter métodos y request.getParameterValues.

Por ejemplo, el acceso a un parámetro de orden citado, puede utilizar esta expresión: $ {} param.order, o $ {param [ "orden"]}.

Los siguientes ejemplos muestran cómo acceder al parámetro de petición de nombre de usuario:

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

param objeto devuelve una única cadena, objeto paramValues ​​se devuelve una matriz de cadenas.


objetos de cabecera y headerValues

cabecera y el objeto headerValues ​​se utiliza para acceder a la información de cabecera mediante el uso de los métodos y el método request.getHeaders request.getHeader.

Por ejemplo, para acceder a la información, llamado encabezado de agente de usuario, puede utilizar esta expresión: $ {} header.user-agente, o $ {cabecera [ "user-agent"]}.

Los siguientes ejemplos muestran cómo acceder a la cabecera 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>

Los resultados son como sigue:

jsp-expresión-lenguaje

objeto de encabezado devuelve un solo valor, mientras que headerValues ​​devuelve una matriz de cadenas.