Upload
dodien
View
213
Download
0
Embed Size (px)
Citation preview
26/11/2005 JSTL 1
JSTL: Uma forma padrão de desenvolver página WEB
dinâmica
Plácido Antonio de Souza Neto
26/11/2005 JSTL 2
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 3
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 4
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 5
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 6
Como Funciona?
ServletAtualizado?
AnalisaPágina JSP
ServletCarregado?
CompilaServlet
Gera códigoServlet
CarregaServlet
GeraResposta
Pedido
RespostaWebBrowser
Servidor Web (HTTP)
Contêiner Servlet / JSP
sim
sim
não
não
26/11/2005 JSTL 7
Organização da Plataforma
Linguagem Java
API Java Servlet
JSP
JSTLPáginas Web
Aplicação
Java
� Estrutura:
26/11/2005 JSTL 9
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 10
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áginasWEB.
26/11/2005 JSTL 11
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 12
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 naversã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 13
Marcação JSTL (Core e XML)
Transformação
Controle de Fluxo x
Core
XML
Gerenciamento de URL
Controle de Fluxoc
Suporte a Variáveis
Core
PrefixoSubfunçãoÁrea
26/11/2005 JSTL 14
Marcação JSTL (fmt, sql e fn)
PrefixoSubfunçãoÁrea
Manipulação de Strings
fn
Tamanho de Coleções
Funções
sqlSQLBanco de Dados
Formatação de Datas e Números
Formatação de Mensagens fmt
Local
I18n -Internacionalização
26/11/2005 JSTL 15
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 oselementos estão em um único String
26/11/2005 JSTL 19
Exemplo choose = if / else
Situação Parcial:
<c:choosechoosechoosechoose>
<c:whenwhenwhenwhen test="${nota lt 30}">
Reprovado
</c:whenwhenwhenwhen>
<c:whenwhenwhenwhen test="${nota lt 70}">
Recuperação
</c:whenwhenwhenwhen>
<c:otherwiseotherwiseotherwiseotherwise>
Aprovado
</c:othewiseothewiseothewiseothewise>
</c:choosechoosechoosechoose>
26/11/2005 JSTL 24
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 25
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 31
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)