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