Este é um post disponível para assinantes MVPou para quem possui Créditos DevMedia. Clique aqui para saber mais!
Artigo Java Magazine 06 - Além das fronteiras
Artigo publicado pela Java Magazine 06.

Além das fronteiras
Novidades do JSP 2.0
Expressividade e abstração no novo JSP
Nova linguagem de expressões, padronização de JSTL, fragmentos e tag files são algumas das extensões da versão 2 do JavaServer Pages
A próxima versão do J2EE 1.4 – com lançamento previsto para o meio desse ano – inclui uma série de novidades, como o suporte a web services, o EJB 2.1, JMX, Deployment API, Servlets 2.4 e JSP 2.0 (para uma visão geral das novidades do J2EE 1.4, veja o primeiro artigo desta coluna, na Edição 1).
Nesta edição, vamos explorar com detalhes as novidades do JSP 2.0 e apontar algumas boas práticas para o uso dos novos recursos.
Facilidade de programação
O objetivo principal da nova especificação JSP é melhorar a legibilidade do código e facilitar a manutenção das páginas. Isso é alcançado com uma melhora significativa nos recursos para criação de bibliotecas de tags (tag libraries ou taglibs), e com a introdução de uma linguagem de expressões.
Vamos explorar os novos recursos analisando uma parte do exemplo BookStore, distribuído com o J2EE Tutorial Addendum. O exemplo roda na versão beta da implementação de referência do J2EE 1.4 – veja no quadro "Primeiros passos" como fazer a instalação.
A aplicação consiste numa livraria on-line com as funcionalidades de exibir a lista de livros disponíveis, detalhar um determinado livro, adicionar livros à cesta de compras e finalizar um pedido. A Figura 1 mostra a listagem dos livros disponíveis, gerada pela página bookcatalog.jsp.

Figura 1. Exemplo BookStore: livros disponíveis (lista reduzida)
Linguagem de expressões
A linguagem de expressões (Expression Language – EL) melhora bastante a sintaxe do JSP, aumentando o nível de abstração dos comandos. Um container web do novo J2EE 1.4 inclui um analisador de expressões. As expressões podem ser usadas em qualquer lugar da página – misturadas ao código HTML ou em atributos de tags – exceto em scriptlets (código Java dentro da página JSP).
Por exemplo, imagine que precisamos exibir o preço de um determinado livro. Vamos supor que um objeto da classe database.BookDetails (que representa a entidade "Livro") é passado para o JSP como um atributo do request. Até o JSP 1.2, o preço do livro poderia ser exibido da seguinte forma:
Preço: <%= ((database.BookDetails) request.getAttribute(“book”)).getPrice() %>
Com a introdução da EL, esse código pode ser reduzido para:
Preço: ${book.price}
As expressões entre ${ e } são analisadas em tempo de execução pelo container web. No exemplo, o objeto representado pela chave book é procurado num dos possíveis contextos (page, request, session ou application). O analisador de expressões então traduz o operador "." (ponto) em métodos getXXX – onde XXX é o nome da propriedade na expressão – e navega na hierarquia de objetos usando introspecção.
"
Este é um post disponível para assinantes MVPou para quem possui Créditos DevMedia. Clique aqui para saber mais!
Júlio César Lins
é Arquiteto de Tecnologias da Qualiti Software Processes (www.qualiti.com.br) e programador certificado pela Sun. Júlio César faz parte do Corpo Editorial da Java Magazine.



