Artigo Java Magazine 07 - JSTL - Guia Completo
Artigo publicado pela Java Magazine 07.
Clique aqui para ler esse artigo em PDF.
JSTL – Guia Completo
Parte 1: Linguagem de Expressões e Core
Nesta série de artigos, conheça em detalhes a JSP Standard
Tag Library, começando pela EL e a biblioteca Core
A tecnologia JSP fornece um poderoso recurso na confecção de páginas web: as bibliotecas de tags, ou taglibs. Através delas, é possível encapsular trechos de código Java em tags, facilitando a manutenção (principalmente durante a interação entre desenvolvedores e designers), aumentando a clareza do código e estimulando o reuso das páginas.
Apesar das taglibs caminharem lado a lado com a tecnologia JSP desde o JSP 1.1, não existia até há pouco tempo uma biblioteca "oficial" de tags (além das tags <jsp>), o que obrigava os desenvolvedores a implementarem tags para tarefas comuns, gastando horas preciosas de desenvolvimento em algo básico, fora do escopo da aplicação em si.
Felizmente essa situação está mudando, com a padronização da JSTL (JSP Standard Tag Library). A JSTL é, na verdade, uma especificação (JSR-52) e fará parte do novo JSP 2.0 e do J2EE 1.4 (veja o artigo "Novidades do JSP 2.0", da Edição 5). Assim como para muitos JSRs, existe uma implementação de referência (RI) da JSTL disponível para download (veja o quadro "Instalação básica").
A JSTL é composta de quatro taglibs (Core, SQL, XML e FMT), além de uma linguagem de expressões e uma API para integração de novas tags à JSTL.
Linguagem de expressões
Na versão anterior do JSP (1.2), existiam duas maneiras de passar valores aos atributos de uma taglib: estaticamente ou através de expressões (também chamadas de request-time expressions – ou simplesmente RT). Na tag JSP a seguir, por exemplo, são usados um valor estático ("usuario") para o atributo name, além de uma expressão (request.getParameter("id")) para o atributo value:
<jsp:setProperty name="usuario" property="id"
value="<%= request.getParameter("id") %>"/>
Embora flexível, o uso de expressões RT compromete a manutenção das páginas JSP, pois seu uso requer conhecimentos da linguagem Java – o que dificulta o trabalho dos designers envolvidos. A Expression Language (EL) visa eliminar esse problema, facilitando o acesso aos objetos e aos seus métodos.
Nota: no artigo citado sobre JSP 2.0, foi apresentada uma introdução à EL. Alguns tópicos são tratados aqui novamente (embora sob novo enfoque) para garantir a continuidade do texto.
As expressões da EL começam com um $ e são delimitadas por chaves. Usando a EL, o trecho de código JSP a seguir:
<jsp:getProperty name="usuario" property="nome"/>
poderia ser substituído por:
${usuario.nome}
Resolução de identificadores
A EL transforma identificadores em objetos, fazendo uma chamada ao método PageContext.findAttribute(String id) do JSP, que procura o atributo de nome id em um dos quatro escopos JSP: página (page), requisição (request), sessão (session) ou aplicação (application) – nesta ordem – e retorna o objeto associado ao identificador, ou null. Por exemplo, a expressão $ retorna um objeto com id "usuario" e que esteja definido em um dos quatro escopos; null é retornado caso o objeto não seja encontrado.
A EL também oferece 11 objetos implícitos, que têm precedência sobre as variáveis de escopo (veja a Tabela 1).
|
Objeto |
Descrição |
Equivalentes JSP "tradicional" (RT) |
Exemplos |
|
Page Context |
Contexto da página JSP (mesmo objeto pageContext do JSP conven cional) |
pageContext |
$ |
|
Page Scope Request Scope Session Scope Applica tion Scope |
Atributos da página, requi sição, sessão e aplicação |
pageContext. findAtribute (nome, Page Context.PAGE _SCOPE) pageContext. findAtribute (nome, Page Context.REQ" |
Artigos relacionados
-
Artigo
-
Artigo
-
Artigo
-
Artigo
-
Artigo