JSP Expression Language (EL) torna o acesso aos dados armazenados em JavaBeans muito simples. JSP EL pode ser usado para criar expressões aritméticas e lógicas. Inteiros, números de ponto flutuante, strings, constantes verdadeiro, falso e nulo podem ser usados em expressões JSP EL.
Normalmente, quando você precisa especificar um valor de atributo em uma tag JSP, basta usar uma string:
<jsp:setProperty name="box" property="perímetro" value="100"/>
JSP EL permite especificar uma expressão para representar um valor de propriedade. Uma sintaxe de expressão simples é a seguinte:
${expr}Entre eles,
expressãorefere-se a uma expressão. Os operadores comuns em JSP EL são
"."e
"[]". Estes dois operadores permitem-lhe aceder a uma variedade de
JavaBeansPropriedades.
Por exemplo, o acima
<jsp:setProperty>As tags podem ser reescritas 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 vê "
${} “Após a formatação, gera código para avaliar a expressão e produzir um substituto para o valor da expressão.Você também pode usar linguagens de expressão no texto do modelo da etiqueta. Por exemplo
<jsp:texto>A tag simplesmente insere o texto do seu corpo na saída JSP:
<jsp:text><h1>Olá JSP!</h1></jsp:text>
agora, em
<jsp:texto>Use uma expressão no corpo da tag, assim:
<jsp:text>O perímetro da caixa é: ${2*box.width + 2*box.height}</jsp:text>Parênteses podem ser usados para organizar subexpressões em expressões EL. Por exemplo
${(1 + 2) * 3} é igual a 9, mas ${1 + (2 * 3)} Igual a 7.Para desabilitar a avaliação de expressões EL, use
páginaAs instruções serão
éELIgnoradoO valor do atributo está definido como
verdadeiro:
<%@ página isELIgnored ="true|false" %>
Desta forma, as expressões EL são ignoradas. Se definido para
falso, o contêiner avaliará a expressão EL.
As expressões EL suportam a maioria dos operadores aritméticos e lógicos fornecidos por Java:
| Operador | descrever |
|---|---|
| . | Visite umFeijãoAtributo ou entrada de mapa |
| [] | Acessar elementos de um array ou lista vinculada |
| ( ) | Organize uma subexpressão para alterar a precedência |
| + | adicionar |
| - | menos ou negativo |
| * | pegar |
| /ou div | remover |
| % ou modificação | Pegue um molde |
| == ou equação | Teste de igualdade |
| != ou não | Teste se for desigual |
| < ou lt | Teste se for menor que |
| > ou gt | Teste se é maior que |
| <= ou le | Teste se for menor ou igual a |
| >= orge | Teste se é maior ou igual a |
| && ou e | Teste lógico AND |
| || ou ou | Teste OU lógico |
| ! ou não | negação de teste |
| vazio | Teste para valor nulo |
JSP EL permite usar funções em expressões. Essas funções devem ser definidas na biblioteca de tags personalizadas. A sintaxe para usar a função é a seguinte:
${ns:func(param1, param2, ...)}ns refere-se ao namespace,
funçãoRefere-se ao nome da função,
parâmetro1Refere-se ao primeiro parâmetro,
parâmetro2 refere-se ao segundo parâmetro e assim por diante. Por exemplo, existe uma função
fn: comprimento, definido na biblioteca JSTL, pode ser usado para obter o comprimento de uma string da seguinte forma:
${fn:length("Obter meu comprimento")}Para usar funções de qualquer biblioteca de tags, você precisa instalar essas bibliotecas no servidor e então usar
<taglib>As tags incluem essas bibliotecas em arquivos JSP.
JSP EL suporta os objetos implícitos listados na tabela a seguir:
| Objeto oculto | descrever |
|---|---|
| pageScope | escopo da página |
| requestScope | escopo da solicitação |
| sessãoScope | escopo da sessão |
| aplicaçãoScope | escopo de aplicação |
| parâmetro | Parâmetros do objeto Request, string |
| paramValues | Parâmetros do objeto Request, coleção de strings |
| cabeçalho | Cabeçalho HTTP, string |
| valores de cabeçalho | Cabeçalho HTTP, coleção de strings |
| initParam | Parâmetros de inicialização de contexto |
| biscoitos | Valor do biscoito |
| pageContext | pageContext da página atual |
Você pode usar esses objetos em expressões como variáveis. A seguir, serão dados vários exemplos para melhor compreensão deste conceito.
pageContextO objeto está em JSP
pageContextReferência de objeto. Passar
pageContextObjeto que você pode acessar
solicitarObjeto. Por exemplo, visite
solicitarA string de consulta passada pelo objeto, assim:
${pageContext.request.queryString}
pageScope,
requestScope,
sessãoScope,
aplicaçãoScopeVariáveis são usadas para acessar variáveis armazenadas em vários níveis de escopo.
Por exemplo, se você precisar acessar explicitamente o
aplicaçãoScopeEm camadas
caixaAs variáveis podem ser acessadas assim:
aplicaçãoScope.box.
parâmetroe
paramValuesObjeto usado para acessar valores de parâmetros, usando
solicitação.getParameterMétodos e
request.getParameterValuesMétodo.
Por exemplo, acessando um arquivo chamado
ordem parâmetros, você pode usar expressões como esta:
${param.pedido} , ou ${param["pedido"]} .O exemplo a seguir mostra como acessar a solicitação em
nome de usuárioParâmetros:
<%@ page import="java.io.*,java.util.*" %><% String title = "Acessando parâmetro de solicitação" %><html><head><title><% out.print(title); ); %></title></head><body><center><h1><% out.print(title); alinhar="center"><p>${param["nomedeusuário"]}</p></div></body></html>O objeto param retorna uma única string, enquanto
paramValuesObject retorna uma matriz de strings.
cabeçalhoe
valores de cabeçalhoO objeto é usado para acessar o cabeçalho da informação, usando
solicitação.getHeaderMétodos e
solicitação.getHeadersMétodo.
Por exemplo, para acessar um arquivo chamado
agente do usuário cabeçalho de informações, você pode usar a expressão assim:
${header.user-agent} , ou ${header["agente-usuário"]} .O exemplo a seguir mostra como acessar
agente do usuárioCabeçalho de informações:
<%@ page import="java.io.*,java.util.*" %><% String title = "Exemplo de agente do usuário" %><html><head><title><% out.print(title); ); %></title></head><body><center><h1><% out.print(title); alinhar="center"><p>${header["user-agent"]}</p></div></body></html>Os resultados da execução são os seguintes:

O objeto header retorna um único valor, enquanto headerValues retorna uma matriz de strings.