Artigo Java Magazine 07 - JSTL - Guia Completo

Artigo publicado pela Java Magazine 07.

Esse artigo faz parte da revista Java Magazine edição 07. Clique aqui para ler todos os artigos desta edição

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"

[...] continue lendo...

Artigos relacionados