plácido antonio de souza neto placidoneto@cefetrnplacidoneto/downloads/jstl.pdf · 26/11/2005 jstl...

32
26/11/2005 JSTL 1 JSTL: Uma forma padrão de desenvolver página WEB dinâmica Plácido Antonio de Souza Neto [email protected]

Upload: dodien

Post on 13-Nov-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

26/11/2005 JSTL 1

JSTL: Uma forma padrão de desenvolver página WEB

dinâmica

Plácido Antonio de Souza Neto

[email protected]

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 8

Mau Uso de PáginasDinâmicas

Construindo o HTML no Servlet

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 16

Exemplos

Exemplos Feitos no NetBeans 5.0 Beta

26/11/2005 JSTL 17

Código (forEach e forTokens)

26/11/2005 JSTL 18

Apresentação Exemplo

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 20

Exemplo param - EL

26/11/2005 JSTL 21

Código param - EL

26/11/2005 JSTL 22

Exemplo Format

26/11/2005 JSTL 23

Código Format

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 26

Classe .java

26/11/2005 JSTL 27

Arquivo njd.tld

26/11/2005 JSTL 28

Arquivo .jsp

26/11/2005 JSTL 29

Exemplo Custom Tags

26/11/2005 JSTL 30

Conclusão

� Maior facilidade em trabalhar com páginas WEB dinâmicas em Java.

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)

26/11/2005 JSTL 32

Final

Obrigado!!!