J550 Tag Libraries e JSTL

Documentos relacionados
JSTL: facilitando o JSP. Fernando Boaglio

JSTL: Uma forma padrão de desenvolver página WEB dinâmica Plácido Antonio de Souza Neto

Programação para Internet II

JSP Standard Tag Library (JSTL)

JSP Standard Tag Library (JSTL)

Java para WEB JSTL. JavaServer Pages Standard Tag Library

Servlets & JSP. Prof. Ramon Chiara

Tutorial para criação de componentes JSF Facelets Por Érico GR 07/08/2007

J550. Apache Struts. Helder da Rocha

Linguagem de Expressão, JSTL e DisplayTag. Fornece tags para encapsular funcionalidades complexas para utilização em JSPs

Aplicações de Linguagem de Programação Orientada a Objeto

Use a Cabeça! FREEMAN, Eric e Elisabeth. HTML com CSS e XHTML BASHMAN, Brian / SIERRA Kathy / BATES, Bert. Servlets & JSP

Manual de Utilização da Biblioteca VisPublica

SCE-557. Técnicas de Programação para WEB. Rodrigo Fernandes de Mello

Java II. Sérgio Luiz Ruivace Cerqueira

Aula 4. Objetivos. Conteúdo dinâmico na internet.

Laboratório de Programação 3 Parte II 2 - Struts. Maj Mello SE/8 IME cgmello@de9.ime.eb.br

Programação Web Aula 12 - Java Web Software

O nome ANT é uma sigla para another neat tool (mais uma ferramenta organizada), segundo seu autor James Duncan Davidson.

Criação de um novo projeto no Eclipse utilizando Maven

Programação Web. Professor: Diego Oliveira. Conteúdo 02: JSP e Servlets

Java II. Sérgio Luiz Ruivace Cerqueira

Guia para Iniciantes do WebWork

DWR DIRECTED WEB REMOTING

Tencologia em Análise e Desenvolvimento de Sistemas Disciplina: WEB I Conteúdo: WEB Container Aula 04

Desenvolvendo Websites com PHP

JavaServer Pages (JSP) Leonardo Gresta Paulino Murta

Aula 03 - Projeto Java Web

Faça um Site PHP 5.2 com MySQL 5.0 Comércio Eletrônico

EMML Enterprise Mashup Markup Language. Jesús Martín Talavera Portocarrero

UNIDADE II JAVA SERVLETS

Java 2 Enterprise Edition Uma aplicação J2EE completa

XML e Banco de Dados. Prof. Daniela Barreiro Claro DCC/IM/UFBA

Orientada a serviços: JAX-WS SOAP API

WebApps em Java com uso de Frameworks

Guia de Consulta Rápida. PHP com XML. Juliano Niederauer. Terceira Edição. Novatec

J550 Segurança e Controle de erros

Programação Web Prof. Wladimir

Laboratório EJB e J2EE Uma aplicação completa

Programação WEB. Prof. André Gustavo Duarte de Almeida docente.ifrn.edu.br/andrealmeida. Aula III Introdução PHP

Sumário. Capítulo 1 Revisão de PHP Capítulo 2 Melhorando o processamento de formulários... 46

DESENVOLVENDO APLICAÇÕES WEB UTILIZANDO A FERRAMENTA WEBSCHARTS

JSP: JAVA SERVER PAGES

Sistemas para internet e software livre

MAPEAMENTO DE CONSULTAS SQL EM XML ENTRE SISTEMAS GERENCIADORES DE BANCO DE DADOS RELACIONAIS

Aplicabilidade: visão geral

UNIDADE III JAVA SERVER PAGES

Aplicativo web para definição do modelo lógico no projeto de banco de dados relacional

JSF Facelets. Como Facelets muda a forma de desenvolver com JSF

Programação WEB (JSP + Banco Dados) Eng. Computação Prof. Rodrigo Rocha

Capítulo 1 - Java EE 6 por alto - 1

Documentação Usando o Javadoc

Java JSTL. Rodrigo C. de Azevedo

Construindo portais com Plone. Módulo 3 Templates

CURSO DE PROGRAMAÇÃO EM JAVA

Conteúdo Dinâmico. Introdução. Interação Browser x Servidor Web. Interação Browser x Servidor Web

Desenvolvendo Portlets utilizando JSF, Ajax, Richfaces. Gustavo Lira Consultor 4Linux

PHP Profissional. Alexandre Altair de Melo Mauricio G. F. Nascimento

CA Desktop Migration Manager

Programação para Internet Flávio de Oliveira Silva, M.Sc.

TUTORIAL SPRING SECURITY PROGRAMAÇÃO COM FRAMEWORKS Responsáveis: Ana Luíza Cruvinel, Maikon Franczak e Wendel Borges

Lista de Revisão. 3. Analise a afirmativa a seguir como verdadeira ou falsa e justifique.

ADMINISTRAÇÃO DE SISTEMAS OPERACIONAIS SERVIÇOS IMPRESSÃO. Professor Carlos Muniz

Conteúdo Programático de PHP

2 echo "PHP e outros.";

SCC Técnicas de Programação para WEB. Rodrigo Fernandes de Mello

J550. Model View Controller

JSP: JAVA SERVER PAGES

Curso de Aprendizado Industrial Desenvolvedor WEB

Programação para Internet II

Integração contínua com Hudson - Configuração, Extensão e Diversão! Fabiane Bizinella Nardon fabiane.nardon@zilics.com.br Zilics

Versão /10. Xerox ColorQube 9301/9302/9303 Serviços de Internet

GERÊNCIA DE DADOS SEMIESTRUTURADOS -XML. Prof. Angelo Augusto Frozza, M.Sc.

JAVA Programmer - Objetivo do Curso. Pré-requisito do Curso. Conteúdo Programático do Curso

Aplicativos para Internet Aula 01

Java 2 Enterprise Edition Construção de Aplicações Web

Java II. Sérgio Luiz Ruivace Cerqueira

Aplicações Web com Servlets e JSP

VisTrails. Fernando Seabra Chirigati Aluno de Engenharia de Computação e Informação COPPE/UFRJ fernando_seabra@cos.ufrj.br

Nota de aplicação: Desenvolvimento de Páginas no PO WebGate

Tencologia em Análise e Desenvolvimento de Sistemas Disciplina: WEB I Conteúdo: WEB Container TomCat Aula 05

Java para Desenvolvimento Web

J820. Testes de interface Web com. HttpUnit. argonavis.com.br. Helder da Rocha

Gerenciamento de Pacotes

Componentes da linguagem C++

Grupo de Usuários Java JavaServer Faces: A mais nova tecnologia Java para desenvolvimento WEB

MAN001 Atualização Protocolo e Ação Social Versão 2 Cliente: Duralex Sistemas

Programação Web com Webdev 19 Julio Cesar Pedroso Conteúdo

Desenvolvimento em Ambiente Web. HTML - Introdução

Transcrição:

J550 Tag Libraries e JSTL Helder da Rocha (helder@acm.org) www.argonavis.com.br 1

Custom tags JSP com JavaBeans fornecem um meio de diminuir código Java da página, mas não totalmente Designers de página ainda têm que usar elementos de script para loops e lógica condicional (getproperty e setproperty não bastam) Nem sempre os JavaBeans são suficientes para encapsular toda a lógica da aplicação A especificação prevê a criação de elementos XML personalizados (custom tags) para resolver essas limitações Organizados em bibliotecas (taglibs) Cada biblioteca tem seu próprio namespace Taglibs são declaradas no início de cada página... <%@taglib uri="http://abc.com/ex" prefix="exemplo"%>... e usadas em qualquer lugar <exemplo:datahoje /> produz namespace Tuesday, May 5, 2002 13:13:13 GMT-03 2

Como usar custom tags A URI usada para identificar o prefixo de um custom tag não precisa ser real (e apontar para um local) Serve apenas como identificador Ligação entre a especificação da biblioteca (arquivo TLD) e o identificador é feito no arquivo web.xml <web-app>... <taglib> <taglib-uri>http://abc.com/ex</taglib-uri> <taglib-location> /WEB-INF/mytaglib.tld </taglib-location> </taglib> </web-app> Este é o deployment descriptor do Taglib. Localização real! 3

Exemplo de arquivo TLD <?xml version="1.0"?> <!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN" "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd"> <taglib> <tlib-version>1.0</tlib-version> <jsp-version>1.2</jsp-version> <short-name>exemplo</short-name> <uri>http://abc.com/ex</uri> <tag> <name>datahoje</name> <tag-class>exemplos.datetag</tag-class> <description>data de hoje</description> </tag> Sugestão de prefixo (autor de página pode escolher outro na hora) URI identifica o prefixo. (autor de página tem que usar exatamente esta URI) </taglib> 4

Exemplos de Custom Tags Veja exemplos/cap11/taglibs/ Vários diferentes exemplos de custom tags (de [6]) Código fonte em taglib/src/taglibdemo/*.java Páginas exemplo em src/*test.jsp (6 exemplos) 1. Configure build.properties, depois, monte o WAR com: > ant build 2. Copie o WAR para o diretório webapps do Tomcat > ant deploy 3. Execute os tags, acessando as páginas via browser: http://localhost:porta/mut/ Veja também exemplos/cap12/mvc/hellojsp_2/ Aplicação MVC que usa custom tags 5

JSP Standard Tag Library Esforço de padronização do JCP: JSR-152 Baseado no Jakarta Taglibs (porém bem menor) Oferece dois recursos Conjunto padrão de tags básicos (Core, XML, banco de dados e internacionalização) Linguagem de expressões do JSP 1.3 Oferece mais controle ao autor de páginas sem necessariamente aumentar a complexidade Controle sobre dados sem precisar escrever scripts Estimula a separação da apresentação e lógica Estimula o investimento em soluções MVC 6

Como usar JSTL 1. Fazer o download da última versão do site da Sun 2. Copiar os JARs das bibliotecas desejadas para o diretório WEB-INF/lib/ da sua aplicação Web e os arquivos TLD para o diretório WEB-INF/ 3. Declarar cada taglib e associá-la com seu TLD no deployment descriptor web.xml. 4. Incluir em cada página que usa os tags: <%@ taglib uri="uri_da_taglib" prefix="prefixo" %> 5. Usar os tags da biblioteca com o prefixo definido no passo anterior <prefixo:nometag atributo="...">... </prefixo:nometag> 7

Quatro bibliotecas de tags Core library: tags para condicionais, iterações, urls,... <%@ taglib uri="http://java.sun.com/jstl/ea/core" prefix="c" /> Exemplo: <c:if test="..."... >...</c:if> XML library: tags para processamento XML <%@ taglib uri="http://java.sun.com/jstl/ea/xml" prefix="x" /> Exemplo: <x:parse>...</x:parse> Internationalization library <%@ taglib uri="http://java.sun.com/jstl/ea/fmt" prefix="fmt" /> Exemplo: <fmt:message key="..." /> SQL library <%@ taglib uri="http://java.sun.com/jstl/ea/sql" prefix="sql" /> Exemplo: <sql:update>...</sql:update> 8

Linguagem de expressões Permite embutir em atributos expressões dentro de delimitadores ${...} Em vez de request.getattribute("nome") ${nome} Em vez de bean.getpessoa().getnome() ${bean.pessoa.nome} Suporta operadores aritméticos, relacionais e binários Converte tipos automaticamente <tag item="${request.valornumerico}" /> Valores default <tag value="${abc.def}" default="todos" /> 9

Principais ações Suporte à impressão da linguagem expressões <c:out value="${pessoa.nome}" /> Expressões condicionais <c:if test="${pessoa.idade >= 18}"> <a href="adultos.html">entrar</a> </c:if> <c:choose> <c:when test="${dia.hora == 13}"> <c:out value="${mensagemespecial}" /> </c:when> <c:otherwise> <c:out value="${mensagempadrao}" /> </c:otherwise> </c:choose> Iteração <c:foreach items="${pessoas}" var="p" varstatus="s"> <c:out value="${s.count}"/>. <c:out value="${p}"/> </c:foreach> 10

Internacionalização, XML e SQL Ler propriedade de ResourceBundle <fmt:message key="chave.do.bundle" /> Operações diretas em banco de dados <sql:query datasource="${dsn}"> SELECT...</sql:query> <sql:transaction>, <sql:update>, etc. Operações com XML Uso de expressões XPath em tags JSTL para XML Ações XML: <x:out>, <x:set>, <x:if>, <x:choose>, <x:foreach> (atributo select contém expr. XPath) <x:parse> Processa XML usando DOM ou filtro SAX <x:transform> Realiza transformação XSLT. 11

Exercícios 1. Inclua a taglib exemplo.tld em uma de suas aplicações e use o tag datahoje O tag está dentro de exemplo.jar que deve ser copiado para o diretório lib de sua aplicação 2. Instalar tags do JSTL Instale a biblioteca JSTL na sua aplicação, copiando os JARs e TLDs para os locais exigidos Veja a documentação e os tags disponíveis 3. Use os tags de lógica <if> e <foreach> para remover as expressões condicionais e iterações das páginas da aplicação de mensagens 12

helder@acm.org argonavis.com.br 13