JSTL - JSP Standard Tag Library

Biblioteca Padrão de Tags JSP

Qual o problema?

O que queremos?

Qual a solução?

 

JSTL

EL - Expression Language

Operador Descrição Exemplo Resultado

==
eq

Igualdade ${5 == 5} true
!=
ne
Desigualdade ${5 != 5} false
<
lt
Menor que ${5 < 7} true

>
gt

Maior que ${5 > 7} false
<=
le
Menor ou igual que ${5 le 5} true

>=
ge

Maior ou igual que ${5 ge 6} false
empty Checa se um parâmetro está vazio ${user.lastname} depende
and
&&
E ${param.month == 5 and param.day == 25} depende
or
||
OU ${param.month == 5 or param.month == 6} depende
+ soma ${4 + 5} 9
!
not
Negação ${not true} false

 

Bibliotecas padrão

Biblioteca JSTL Prefixo URI Tipos de uso Exemplo de tag
Core
c
http://java.sun.com/jstl/core
  • Acessar e modificar dados em memória
  • Comandos condicionais
  • Loop
<c:forEach>
Processamento de XML
x
http://java.sun.com/jstl/xml
  • Parsing (leitura) de documentos
  • Impressão de partes de documentos XML
  • Tomada de decisão baseado no conteúdo de um documento XML
<x:forEach>
Internacionalização e formatação
fmt
http://java.sun.com/jstl/fmt
  • Leitura e impressão de números
  • Leitura e impressão de datas
  • Ajuda a sua aplicação funcionar em mais de uma lingua
<fmt:formatDate>
Acesso a banco de dados via SQL
sql
http://java.sun.com/jstl/sql
  • Leitura e escrita em banco de dados
<sql:query>

Tags básicas

Tags de Iteração

Tags condicionais

Tag <c:if>

Tag <c:choose>

2 (par) ; 3 (impar) ; 4 (par) ; 5 (impar) ; 

Tags de atribuição e importação

Tag <c:import>

Atributo Descrição Requerido? Default
url URL a ser importada Sim Nenhum
context

"/" seguido do nome da aplicação web local

Não Contexto corrente
var Nome do atributo onde será armazenado o conteúdo da página importada Não Nenhum
scope

Escopo do atributo onde será armazenado o conteúdo da página importada

Pode ser: page, request, session, application

Não page

 

Tag <c:set>

Atributo Descrição Requerido? Default
value Expressão a ser processada Não Nenhum
var Nome do atributo onde será armazenado o resultado do processamento do atributo "value" Não Nenhum
scope

Escopo do atributo.

Pode ser: page, request, session, application

Não page
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<html>
<body>
<c:set scope="request" var="title" value="Welcome to Page 1"/>
<c:import var="headerText" url="header.jsp"/>
<br>Minha página:${title}
<br>Texto importado:${headerText}
</body>
</html>
  • Arquivo "header.jsp"
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core"    %>
#${title}#
  • Saída
Minha página:Welcome to Page 1 
Texto importado: #Welcome to Page 1# 

Acessando objetos Java

Maria 
Zeca 
Carlos
Id Nome
Primeiro Maria
Número 2 Zeca
Último Carlos


Instalação de uma aplicação que utilize JSTL

Aprofundando-se em JSTL