Cursos / Informática para Internet / Desenvolvimento Web I / Aula

arrow_back Aula 08 - JSTL – Internacionalização, Taglib functions e expression language

A taglib functions III

Uma vez que vimos como podemos acessar objetos, mapas, listas, arrays e suas propriedades, vamos agora entender mais um detalhe sobre EL. Da mesma forma que dentro dos códigos scriptlets temos algumas variáveis que estão implícitas, em EL isso também é verdade. Por padrão, algumaCoisa procura por uma variável com nome algumaCoisa, em algum dos escopos possíveis. Porém, é possível deixar explícito qual o escopo usando um nome de variável que representa cada um dos escopos. Por exemplo, algumaCoisa procura por uma variável com nome algumaCoisa, em algum dos escopos possíveis. Porém, é possível deixar explícito qual o escopo usando um nome de variável que representa cada um dos escopos. Por exemplo,{sessionScope.usuarioLogado} ou ${pageScope.pessoas}, pois sessionScope e pageScope são variáveis implícitas do contexto EL. O quadro a seguir exibe os contextos implícitos disponíveis.

Objeto Descrição
pageScope Define as variáveis que estão no escopo da página.
requestScope Define as variáveis que estão no escopo da requisição.
sessionScope Define as variáveis que estão no escopo da sessão.
applicationScope Define as variáveis que estão no escopo da aplicação.
param Mapa que contém o valor parâmetros da requisição.
paramValues Mapa que contém o valor dos parâmetros da requisição como array de Strings.
header Mapa que contém o nome e valor dos headers da requisição.
headerValues Mapa que contém o nome e o array de valores dos headers da requisição.
cookie Mapa do nome dos cookies e o cookie.
initParam Mapa com o nome dos parâmetros iniciais e seus valores.
Quadro 10 - Variáveis de contexto implícitas que se encontram disponíveis para o JSP.

Cada uma dessas variáveis representa um objeto Java já visto por nós. Por exemplo, quando usamos ${param.code}, estamos, na verdade, fazendo request.getParameter(“code”). Bem mais fácil que usar scriptlets, não é?!

Outra coisa muito legal de EL é o uso de operadores de aritmética, de lógica e relacionais. A seguir, mostraremos quais são esses operadores e como usá-los.

Operador Descrição
+ Adição.
- Subtração.
* Multiplicação.
/ (div) Divisão.
% (mod) Módulo da divisão (resto).
== (eq) Igualdade.
!= (ne) Desigualdade.
< (lt) Menor que.
> (gt) Maior que.
<= (le) Menor ou igual.
>= (ge) Maior ou igual.
&& (and) Verdadeiro, se ambos operandos são verdadeiros; Falso, caso contrário.
|| (or) Verdadeiro, se um ou ambos operandos forem verdadeiros; Falso, caso contrário.
! (not) Verdadeiro, se operando for verdadeiro; Falso, caso contrário.
Empty Verdadeiro, se o operando for nulo, uma String vazia, um mapa vazio ou uma lista vazia; Falso, caso contrário.
Quadro 11 - Operadores suportados pela EL

Bom, operações é que não faltam. Basicamente, essas são as principais operações de lógica e aritmética da linguagem Java. Lembram-se da atividade que listava as pessoas do sistema? Pois bem, e se quiséssemos pintar as linhas ímpares da tabela de uma cor e as pares de outra, como poderíamos fazer? Abaixo, mostramos uma possível maneira fazer isso.

Listagem 7 - Exemplo de uso de operadores lógicos.

Observe que no c:forEach usamos o atributo varStatus para ter acesso ao contexto de loop da tag. Isso permite que possamos utiliza a variável “status” como uma forma de saber, por exemplo, qual o número da iteração que estamos. Dentro o loop, temos a tag c:choose, na linha 07, para escolher se a linha será cinza ou branca, de acordo com o índice da iteração atual. Se o status.indice % 2 for zero, a linha será cinza; caso contrário, será branca. Aqui vale comentar uma coisa: no lugar do operador % poderíamos usar mod, e no lugar do operador == poderíamos usar eq.

Então, viu como é fácil, poderoso e claro usar EL no lugar de scriptlets? Espero que daqui pra frente scriptlets seja coisa do passado e você comece a usar JSTL e EL nas suas páginas JSP. Você perceberá como o seu código ficará mais legível e mais fácil de manter.

Bom, pessoal, terminamos de comentar o que existe de mais importante no uso de JSTL e EL. Espero que vocês tenham aproveitado e entendido.

Versão 5.3 - Todos os Direitos reservados