0% acharam este documento útil (0 voto)
528 visualizações37 páginas

JSTL Facilitando o JSP

O documento discute a biblioteca JavaServer Pages Standard Tag Library (JSTL) e como ela pode facilitar o desenvolvimento de JSPs padronizando o uso de tags. Apresenta os principais componentes da JSTL, como instalá-la e exemplos de uso de tags para exibição de objetos, operadores condicionais, loops e formatação.

Enviado por

Lucas Vieira
Direitos autorais
© Attribution Non-Commercial (BY-NC)
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
528 visualizações37 páginas

JSTL Facilitando o JSP

O documento discute a biblioteca JavaServer Pages Standard Tag Library (JSTL) e como ela pode facilitar o desenvolvimento de JSPs padronizando o uso de tags. Apresenta os principais componentes da JSTL, como instalá-la e exemplos de uso de tags para exibição de objetos, operadores condicionais, loops e formatação.

Enviado por

Lucas Vieira
Direitos autorais
© Attribution Non-Commercial (BY-NC)
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 37

JSTL: facilitando o JSP

Fernando Boaglio
Agenda
• O JSP sem padrão
• JSTL: o JSP com padrão
• Como instalar o JSTL?
• Exibindo objetos
• Nossa aplicação
• Operadores condicionais e loops
• Formatação e i18n
• Funções e SQL
• Referências
• Exercícios
O JSP sem padrão
• É muito comum!
• Scriptlets espalhados em vários páginas
• Código confuso = manutenção +trabalhosa
• Regras de negócio não deveriam ser tratadas
dentro do JSP (foge ao padrão MVC!)
• JSP deve ser usado somente para a camada
de visualização (viewer), somente exibindo o
conteúdo dos objetos e nada de scriptlets
Agenda
• O JSP sem padrão
• JSTL: o JSP com padrão
• Como instalar o JSTL?
• Exibindo objetos
• Nossa aplicação
• Operadores condicionais e loops
• Formatação e i18n
• Funções e SQL
• Referências
• Exercícios
JSTL: o JSP com padrão
Histórico

● Julho/2001 - Criado o projeto (JSR-052)


● Junho/2002 – lançado o JSTL 1.0 baseado
no JSP 1.2 (Tomcat4 e maioria dos
servidores corporativos)
● Janeiro/2004 - lançado o JSTL 1.1 baseado
no JSP 2.0 (Tomcat 5)
● Julho/2004 - lançado o JSTL 1.1.1
JSTL: o JSP com padrão
Finalidade

● Padronizar as aplicações JSP !

● Dar soluções fáceis de usar para tarefas mais


comuns
JSTL: o JSP com padrão
Tipos de soluções JSTL 1.0

Tipo URI Prefixo Exemplo

Core http://java.sun.com/jstl/core c <c:nomeDaTag...>

XML http://java.sun.com/jstl/xml x <x:nomeDaTag...>

Internationalization http://java.sun.com/jstl/fmt fmt <fmt:nomeDaTag...>

Database http://java.sun.com/jstl/sql sql <sql:nomeDaTag...>


JSTL: o JSP com padrão
Tipos de soluções JSTL 1.1

Tipo URI Prefixo Exemplo

Core http://java.sun.com/jsp/jstl/core c <c:nomeDaTag...>

XML http://java.sun.com/jsp/jstl/xml x <x:nomeDaTag...>

I18n http://java.sun.com/jsp/jstl/fmt fmt <fmt:nomeDaTag...>

Database http://java.sun.com/jsp/jstl/sql sql <sql:nomeDaTag...>

Funções http://java.sun.com/jsp/jstl/functions fn <fn:nomeDaTag...>


Agenda
• O JSP sem padrão
• JSTL: o JSP com padrão
• Como instalar o JSTL?
• Exibindo objetos
• Nossa aplicação
• Operadores condicionais e loops
• Formatação e i18n
• Funções e SQL
• Referências
• Exercícios
Como instalar o JSTL?
1. Faça o download:

http://www.apache.org/dist/jakarta/taglibs/standard/

2. Descompacte o arquivo e copie:

a) /jakarta-taglibs-standard-1.*/tld/* para WEB-INF


b) /jakarta-taglibs-standard-1.*/lib/* para WEB-INF/lib
Como instalar o JSTL?
3. Adicione essas informações no web.xml:
<taglib> <taglib>
<taglib-uri>http://java.sun.com/jstl/fmt</taglib-uri> <taglib-uri>http://java.sun.com/jstl/sql</taglib-uri>
<taglib-location>/WEB-INF/fmt.tld</taglib-location> <taglib-location>/WEB-INF/sql.tld</taglib-location>
</taglib> </taglib>

<taglib> <taglib>
<taglib-uri>http://java.sun.com/jstl/fmt-rt</taglib-uri> <taglib-uri>http://java.sun.com/jstl/sql-rt</taglib-uri>
<taglib-location>/WEB-INF/fmt-rt.tld</taglib-location> <taglib-location>/WEB-INF/sql-rt.tld</taglib-location>
</taglib> </taglib>

<taglib> <taglib>
<taglib-uri>http://java.sun.com/jstl/core</taglib-uri> <taglib-uri>http://java.sun.com/jstl/x</taglib-uri>
<taglib-location>/WEB-INF/c.tld</taglib-location> <taglib-location>/WEB-INF/x.tld</taglib-location>
</taglib> </taglib>

<taglib> <taglib>
<taglib-uri>http://java.sun.com/jstl/core-rt</taglib-uri> <taglib-uri>http://java.sun.com/jstl/x-rt</taglib-uri>
<taglib-location>/WEB-INF/c-rt.tld</taglib-location> <taglib-location>/WEB-INF/x-rt.tld</taglib-location>
</taglib> </taglib>
Como instalar o JSTL?
4. Na sua página JSP declare os tipos que for utilizar:

<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>

5. Depois é só sair usando!

<H1><c:out value="Conexão Java 2004" /></H1>


Agenda
• O JSP sem padrão
• JSTL: o JSP com padrão
• Como instalar o JSTL?
• Exibindo objetos
• Nossa aplicação
• Operadores condicionais e loops
• Formatação e i18n
• Funções e SQL
• Referências
• Exercícios
Exibindo objetos
O formato padrão é:

<c:out value="${objeto.atributo}" />

Imagine um objeto Pessoa, com os atributos de


nome e idade:

Aluno : <c:out value="${Pessoa.nome}" />


com <c:out value="${Pessoa.idade}" /> anos.
Exibindo objetos
Para setar valores de variáveis:

<c:set var="nomeDaVariavel" value="valor"/>


ou
<c:set var="nomeDaVariavel">valor</c:set>

Para exibir o valor da variável acima:

<c:out value="${nomeDaVariavel}" />


Exibindo objetos
Para exibir o valor de parâmetros passados
para um formulário :

<c:out value="${param.nomeDoParametro}" />

Exemplo:

Bem-vindo <c:out value="${param.usuario}" />!


Agenda
• O JSP sem padrão
• JSTL: o JSP com padrão
• Como instalar o JSTL?
• Exibindo objetos
• Nossa aplicação
• Operadores condicionais e loops
• Formatação e i18n
• Funções e SQL
• Referências
• Exercícios
Nossa Aplicação
• A aplicação possui 3 telas e foi desenvolvida
em 2 páginas:
Nossa Aplicação
• Tela de cadastro de um novo contato:
Nossa Aplicação
• A lista de contatos cadastrados:
Agenda
• O JSP sem padrão
• JSTL: o JSP com padrão
• Como instalar o JSTL?
• Exibindo objetos
• Nossa aplicação
• Operadores condicionais e loops
• Formatação e i18n
• Funções e SQL
• Referências
• Exercícios
Operadores condicionais
O operador condicional para apenas uma opção:
<c:if test="${expressão}">
...
</c:if>

Exemplo:
<c:if test="${param.nome == 'nobody'}">
Acesso Negado
</c:if>
Operadores condicionais
O operador condicional para duas ou mais opções:
<c:choose>
<c:when test="${expressão}">
...
</c:when>
<c:when test="${expressão}">
...
</c:when>
<c:otherwise>
...
</c:otherwise>
</c:choose>
Operadores condicionais
Exemplo:
<c:choose>
<c:when test="${hora<12}">
Bom dia!
</c:when>
<c:when test="${hora<18}">
Boa tarde!
</c:when>
<c:otherwise>
Boa noite!
</c:otherwise>
</c:choose>
Loops
O loop forEach e usado para percorrer dados de uma
Collection:
<c:forEach var="nome" items="${nomeDaCollection}">
<c:out value="${nome}"/>
</c:forEach>

Exemplo:
<c:forEach var="aluno" items="${listaAlunos}">
<c:out value="${aluno.nome}"/>
</c:forEach>
Agenda
• O JSP sem padrão
• JSTL: o JSP com padrão
• Como instalar o JSTL?
• Exibindo objetos
• Nossa aplicação
• Operadores condicionais e loops
• Formatação e i18n
• Funções e SQL
• Referências
• Exercícios
Formatação e i18n
Dinamicamente podemos exibir textos de
outros idiomas:
<fmt:setLocale value="it_IT"/>
<fmt:setBundle
basename="org.apache.taglibs.standard.examples.i
18n.Resources" var="itBundle" scope="page"/>
<fmt:message key="greetingMorning"
bundle="${itBundle}"/>

Resultado: Buon giorno!


Formatação e i18n
Dinamicamente exibimos facilmente valores
numéricos e datas:

<fmt:formatNumber value="${carro.ipva}"
type="currency"/>

<fmt:formatDate value="${compraDoProduto}"
type="date"
dateStyle="full"/>.
Agenda
• O JSP sem padrão
• JSTL: o JSP com padrão
• Como instalar o JSTL?
• Exibindo objetos
• Nossa aplicação
• Operadores condicionais e loops
• Formatação e i18n
• Funções e SQL
• Referências
• Exercícios
Funções e SQL
Diversas funções de manipulação de Strings,
entre elas: length , toUpperCase,
toLowerCase, substring, substringAfter,
substringBefore,etc.

<c:out value="${fn:trim(stringComEspacos)}"/>
Funções e SQL
- SQL direto do JSTL com opcional uso de
Data Source
<sql:setDataSource
var="exemplo"
driver="${sessionScope.driverDoBanco}"
url="${sessionScope.urlDoBanco}"
user="${sessionScope.usuarioDoBanco}"
password="${sessionScope.senhaDoBanco}"
/>
<sql:query var="buscaTodosClientes">
SELECT * FROM CLIENTES
</sql:query>
Agenda
• O JSP sem padrão
• JSTL: o JSP com padrão
• Como instalar o JSTL?
• Exibindo objetos
• Nossa aplicação
• Operadores condicionais e loops
• Formatação e i18n
• Funções e SQL
• Referências
• Exercícios
Comunidade virtual
• Grupos de Usuários:
GUJ
Portal Java
SouJava
e muitos outros

Sites de JSTL:
http://java.sun.com/products/jsp/jstl/
http://jakarta.apache.org/taglibs/doc/standard-doc/intro.html
http://www.jcp.org/en/jsr/detail?id=52

• Literatura:
JSTL in Action - Shawn Bayern (um dos criadores)
Alguma dúvida ???
Agenda
• O JSP sem padrão
• JSTL: o JSP com padrão
• Como instalar o JSTL?
• Exibindo objetos
• Nossa aplicação
• Operadores condicionais e loops
• Formatação e i18n
• Funções e SQL
• Referências
• Exercícios
Exercícios
• Instalar as bibliotecas do JSTL

• Instalar os exemplos de JSTL

• Fazer uma página de teste

• Migrar a aplicação "Minha Agenda Pessoal"


Minicurso JSTL

Obrigado!

Fernando Boaglio
[email protected]

Você também pode gostar