Atenção: por essa edição ser muito antiga não há arquivo PDF para download.Os artigos dessa edição estão disponíveis somente através do formato HTML.
Pente fino
JSTL – Guia Completo
Parte 3: XML, extensões, IDEs e versões futuras
Neste último artigo da série, analisaremos as taglib XML, o uso da JSTL em tags customizadas e o suporte
O XML já se firmou como padrão para o intercâmbio de informações entre sistemas. A tecnologia Java tem acompanhado sua evolução, oferecendo em cada nova versão do J2SE e J2EE novas APIs para o processamento e a integração com XML, tais como as APIs JAXP, JAXB e JAX
Nesse artigo, analisaremos a taglib XML, e veremos como usar os recursos da JSTL em tags customizadas e como tirar proveito da integração com a JSTL oferecida por IDEs Java. Encerramos com uma visão geral das novidades prometidas para a versão 1.1 e posteriores.
XPath
O XPath é uma notação usada para definir e selecionar partes de um documento XML. As tags da taglib XML usam o XPath como uma linguagem de expressões local aos elementos XML. A sintaxe de XPath é bastante rica, e é bem documentada (veja links). A melhor maneira de entender o básico dessa linguagem é através de exemplos:
· /resume/header/contact/phone – seleciona todos os elementos com nome phone, que sejam sub
· //phone – retorna uma lista com todos os elementos de nome phone no documento (independente da hierarquia);
· /resume/@id – obtém o atributo id do elemento resume;
· //resume/@id – retorna todos os atributos id pertencentes a elementos resume;
· //resume[@id] – retorna todos os elementos resume que possuem o atributo id definido;
· //resume[@id=”felipeal”] – retorna todos os elementos resume cujo valor de id seja o valor literal "felipeal";
· //address[state=”SP”] – obtém todos os elementos resume que possuam um sub
· count(/resume/job) – retorna a quantidade de elementos job contidos no elemento raiz resume (count é uma das funções definidas pelo XPath);
A "ligação" entre variáveis JSTL e expressões XPath é feita por meio dos operadores "$" para variáveis e ":" para propriedades. Por exemplo, a expressão $doc//resume[@id=$param:id] retorna todos os elementos resume, do documento XML referenciado pela variável doc, cujo atributo id tenha o valor passado no parâmetro id no request JSP (lembre
Tags XML
A taglib XML fornece tags para a manipulação de elementos XML, controle de fluxo baseado
Vamos aos detalhes sobre cada tag dessa taglib. Os exemplos se baseiam no documento XML mostrado na Listagem 1, contendo os dados de um Curriculum Vitae fictício – veja também o quadro "Currículos em XML".
Nesta tag, o documento a ser “parseado” é definido pelo atributo xml, que pode ser um string ou um java.io.Reader; o resultado é atribuído à variável definida pelos atributos domVar ou var, com escopos especificados nos atributos domScope ou scope, respectivamente. Quando se usa domVar, o tipo da variável é org.w3c.dom.Document; usando
Dois atributos opcionais permitem ajustes no parse. O atributo filter (de tipo org.xml.sax.XMLFilter) define um filtro a ser aplicado – a filtragem é útil quando o documento original for extenso e a aplicação precisar trabalhar apenas com parte dele, ou quando for necessário realizar substituições em alguns elementos ou atributos. No atributo ...