JSTL: Uma forma padrão de desenvolver página WEB dinâmica Plácido Antonio de Souza Neto placidoneto@cefetrn.br 26/11/2005 JSTL 1
Agenda Histórico e motivação; Servlets e JSP; Introdução e conceituação de JSTL; Tags Padrão: c; xml; sql; format. Exemplos Introdução a Custom Tags. 26/11/2005 JSTL 2
Introdução As JSPs foram projetadas para permitir que os autores de páginas sem nenhum conhecimento em Java gerassem conteúdo dinâmico. Pensando nisso a JSTL (JavaServer Pages Standard Tag Library) vem a facilitar o desenvolvimento de páginas WEB dinâmicas. 26/11/2005 JSTL 3
Evolução Paginas dinâmicas (utilizando Java): Código HTML no Servlet; Código Java na pagina HTML (Scriptlets); EL (Expression Languages) e tags JSTL. O design não precisa conhecer a fundo a linguagem Java. 26/11/2005 JSTL 4
O que é a Tecnologia JSP? Tecnologia que permite criar páginas com conteúdo gerado dinamicamente; Página JSP = HTML + EL + TagLibs; EX: <c:set var= nome value= ${sessionscope.usuario} /> <h1>${nome}</h1> O Tomcat transforma as páginas JSP em Servlets e depois compila; Resolve um problema dos Servlets: Separar o código Java do código HTML. 26/11/2005 JSTL 5
Como Funciona? Pedido Servlet Atualizado? sim não Analisa Página JSP Gera código Servlet Servlet Carregado? não Carrega Servlet Compila Servlet Web Browser Resposta sim Gera Resposta Contêiner Servlet / JSP Servidor Web (HTTP) 26/11/2005 JSTL 6
Organização da Plataforma Estrutura: JSTL JSP API Java Servlet Linguagem Java Páginas Web Aplicação Java 26/11/2005 JSTL 7
Mau Uso de Páginas Dinâmicas Construindo o HTML no Servlet 26/11/2005 JSTL 8
Exemplo do Mau uso de JSP Scriptlets <%@ page import="java.lang.string" %> <html> <head><title>olá Mundo</title></head> <body> <% String nome = request.getparameter("nome"); if (nome!= null) { %> Olá <%= nome %> <% } else { %> Olá Mundo <% } %> </body> </html> 26/11/2005 JSTL 9
JSTL Conjunto de marcações (tags) que encapsulam funcionalidades comuns a muitas aplicações JSP Linguagem de Expressão Simplifica o processo de criação de páginas Facilita o trabalho de Designers de páginas WEB. 26/11/2005 JSTL 10
Estrutura de Referência Dividida de acordo com a funcionalidade Core: http://java.sun.com/jsp/jstl/core XML: http://java.sun.com/jsp/jstl/xml Internacionalização: http://java.sun.com/jsp/jstl/fmt SQL: http://java.sun.com/jsp/jstl/sql Funções: http://java.sun.com/jsp/jstl/functions 26/11/2005 JSTL 11
Estrutura de Referência Diferença para a especificação JSTL 1.0 e 1.1 Não Existe as funções EL na versão 1.0; Aceitação de EL fora das tags padrão JSTL não é permitida na versão 1.0. Estrutura da versão 1.0 Core: http://java.sun.com/jstl/core XML: http://java.sun.com/jstl/xml Internacionalização: http://java.sun.com/jstl/fmt SQL: http://java.sun.com/jstl/sql Funções: http://java.sun.com/jstl/functions 26/11/2005 JSTL 12
Marcação JSTL (Core e XML) Área Core XML Core Subfunção Suporte a Variáveis Controle de Fluxo Gerenciamento de URL Controle de Fluxo Transformação Prefixo c x 26/11/2005 JSTL 13
Marcação JSTL (fmt, sql e fn) Área I18n - Internacionalização Banco de Dados Funções Subfunção Local Formatação de Mensagens Formatação de Datas e Números SQL Tamanho de Coleções Manipulação de Strings Prefixo fmt sql fn 26/11/2005 JSTL 14
Core set: Atribui Valor a uma variável; remove: Remove uma variável; out: Avalia e exibe uma expressão; if: Avalia o conteúdo se a condicão for verdadeira; choose, when, otherwise: Avalia várias condições. semelhante a um if aninhado em Java foreach: Percorre uma coleção de objetos fortokens: Semelhante ao foreach, mas os elementos estão em um único String 26/11/2005 JSTL 15
Exemplos Exemplos Feitos no NetBeans 5.0 Beta 26/11/2005 JSTL 16
Código (foreach e fortokens) 26/11/2005 JSTL 17
Apresentação Exemplo 26/11/2005 JSTL 18
Exemplo choose = if / else Situação Parcial: <c:choose choose> <c:when test="${nota lt 30}"> Reprovado </c:when when> <c:when test="${nota lt 70}"> Recuperação </c:when when> <c:otherwise otherwise> Aprovado </c:othewise othewise> </c:choose choose> 26/11/2005 JSTL 19
Exemplo param - EL 26/11/2005 JSTL 20
Código param - EL 26/11/2005 JSTL 21
Exemplo Format 26/11/2005 JSTL 22
Código Format 26/11/2005 JSTL 23
Custom Tags Custom Tags são componentes reusáveis. Qualquer desenvolvedor pode criar; A complexidade do código Java e dos processos de negócios são abstratas para quem utiliza. 26/11/2005 JSTL 24
Como criar Custom Tags? Classes Java: Herdam de SimpleTagSupport. Arquivo TLD Tag Library Descriptor Descreve as tags do JSP e como utilizar. Empacotamento: Alocar o.tld no diretório WEB-INF/ Alocar o.jar no diretório WEB-INF/lib/ 26/11/2005 JSTL 25
Classe.java 26/11/2005 JSTL 26
Arquivo njd.tld 26/11/2005 JSTL 27
Arquivo.jsp 26/11/2005 JSTL 28
Exemplo Custom Tags 26/11/2005 JSTL 29
Conclusão Maior facilidade em trabalhar com páginas WEB dinâmicas em Java. 26/11/2005 JSTL 30
Referências JavaServer Pages: O guia do Desenvolvedor. Nick Todd, Mark Szolkowski. Editora Campos. Elsevier; (Livro Base) Professor Leonardo Lucena. CEFET-RN (www.cefetrn.br/~leonado). Dotourando no CIn UFPE (Centro de Informática da UFPE). Java Magazine. Edições 18 e 19. Custom Tags & JSTL. Autor não Identificado (Exemplos Testados e Validados) Session 17 JSTL, Apresentação Robert Kelly 11/07/2005 NetBeans 5.0 Beta (Exemplos) 26/11/2005 JSTL 31
Final Obrigado!!! 26/11/2005 JSTL 32