Latest web development tutorials

JSP Expression Language

JSP expressão que acessar os dados armazenados em um JavaBean Language (EL), de modo torna-se muito simples. JSP SR pode ser usado para criar uma expressão aritmética também pode ser usado para criar uma expressão lógica. Em expressões JSP EL pode usar inteiros, números de ponto flutuante, cordas, constantes verdadeiro, falso, não é nulo.


A sintaxe simples

Normalmente, quando você precisa especificar um valor de propriedade quando os tags JSP, basta usar a corda para:

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

expressão JSP EL permite que você especifique um valor de propriedade. A sintaxe de expressão simples é a seguinte:

${expr}

Em que, expr refere-se à expressão. No operador genérico JSP EL é "." E "[]." Estes dois operadores permitem a você acessar uma ampla variedade de embutidos propriedades JSP JavaBean através do objeto.

Por exemplo, o acima <jsp: setProperty> tag pode ser reescrito usando a linguagem de expressão da seguinte forma:

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

Quando o compilador JSP para ver os "$ {}", após o formato, ele gera o código para avaliar a expressão, e gera um substituto para substituir o valor da expressão na propriedade.

Você também pode usar a linguagem de expressão na guia texto do modelo. Por exemplo, <jsp: text> tag simplesmente ser inserido no corpo do texto JSP de saída:

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

Agora, em: usando a expressão <text jsp> marca no corpo, como este:

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

expressões EL entre parênteses podem ser usados ​​para organizar sub-expressão. Por exemplo {$ (1 + 2) * 3 é igual a 9}, mas $ {1 + (2 * 3)} = 7.

Quer desativar avaliação de expressões EL, então você precisa usar a diretiva de página atributo isELIgnored como true:

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

Assim, expressões EL são ignorados. Se definido como false, o recipiente será calculado expressões EL.


operador subjacente EL

apoio de expressão EL fornecida pela maioria dos aritméticas e lógicas operadores Java:

operadores descrição
. Feijão acessar uma propriedade ou uma entrada de mapeamento
[] Acesse uma matriz ou lista de elementos
() Organizar uma sub-expressão para alterar a prioridade
+ mais
- Guardar ou negativo
* Multiply
/ Div Ou exceto
% Ou mod Modulo
== Ou eq Teste de igualdade
! = Ou ne Teste se desigual
<Ou LT Testar se a menos de
> Ou gt O teste é maior do que
<= Ou le Testar se menos do que ou igual
> = Ou ge Testar se maior do que ou igual
&& Or e e lógica de teste
|| Or ou ou lógica de teste
! Ou não teste negada
vazio Teste se nula

A função JSP EL

função JSP EL permite-lhe utilizar em expressões. Estas funções devem ser definidas em uma biblioteca de marcas personalizadas. Use a sintaxe da função é a seguinte:

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

ns refere-se a um espaço de nomes (namespace), func é o nome da função, param1 refere-se ao primeiro argumento, param2 se refere ao segundo argumento, e assim por diante. Por exemplo, existe uma função fn: comprimento, definido na biblioteca JSTL pode ser assim para obter o comprimento de uma cadeia de caracteres:

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

Para usar qualquer uma das funções de biblioteca tag, você vai precisar dessas bibliotecas instaladas no servidor, e depois usar a tag <taglib> contém as bibliotecas no arquivo JSP.


JSP EL objetos implícitos

Suporta objetos implícitos JSP EL estão listados na tabela seguinte:

objetos escondidos descrição
pageScope página escopo
requestScope escopo de solicitação
sessionScope escopo de sessão
applicationScope âmbito de aplicação
param Pedido cadeia parâmetro de objeto
paramValues Parâmetro de solicitação de objeto, coleção corda
cabeçalho string de cabeçalho HTTP
headerValues cabeçalho HTTP, coleta de cadeia
initParam parâmetros de inicialização de contexto
biscoito valor do cookie
pageContext A página pageContext atual

Você pode usar esses objetos em uma expressão, como usar a mesma variável. Em seguida vai dar alguns exemplos para entender melhor esse conceito.


objetos pageContext

objeto pageContext é uma referência para o objeto JSP pageContext. Por pageContext objeto, você pode acessar o objeto do pedido. Por exemplo, para acessar o objeto do pedido transmitido na cadeia de consulta, como este:

${pageContext.request.queryString}

Âmbito Objects

pageScope, requestScope, sessionScope, applicationScope variável é usada para acessar os dados armazenados em cada variável níveis de escopo.

Por exemplo, se você precisar acessar explicitamente caixa de camada variável applicationScope, ele pode ser acessado: applicationScope.box.


objetos param e paramValues

param e paramValues ​​objeto é usado para acessar valores de parâmetros usando o método request.getParameter métodos e request.getParameterValues.

Por exemplo, o acesso a um parâmetro de ordem chamado, você pode usar esta expressão: $ {param.order} ou $ {param [ "ordem"]}.

Os exemplos a seguir mostram como acessar o parâmetro de solicitação usuário:

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

objeto param retorna uma única seqüência, paramValues ​​objeto é retornado uma matriz de cadeia.


objetos de cabeçalho e headerValues

cabeçalho e objeto headerValues ​​é usado para acessar as informações de cabeçalho usando os métodos e método request.getHeaders request.getHeader.

Por exemplo, para acessar informações, chamada de cabeçalho user-agent, você pode usar esta expressão: $ {header.user-agente} ou {$ header [ "user-agent"]}.

Os exemplos a seguir mostram como acessar o cabeçalho 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>

Os resultados são como se segue:

jsp-expressão em língua

objeto cabeçalho retorna um único valor, enquanto headerValues ​​retorna uma matriz de strings.