Cursos / Informática para Internet / Desenvolvimento Web I / Aula
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. |
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. |
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