Upload
internet
View
114
Download
1
Embed Size (px)
Citation preview
Seminários Avançados 3
EL e JSTL
Prof. Danton Cavalcanti Franco Junior
Sintaxe para fazer expressões sem escrever código Java
Está disponível junto com a tecnologia JSP desde a versão 2.0
Com EL, pode-se escrever expressões de forma mais simples, sem a utilização de scriptlets.
Possui conversão de tipos automática, ou seja, não é necessário código Java para converter String para int por exemplo.
EL – Expression Language
${expressao} Onde a expressão pode utilizar variáveis,
literais fixos, objetos implícitos que serão vistos mais adiante.
EL - Sintaxe
<body>Esta é uma página que utiliza a linguagem de
expressão EL.Abaixo será exibido o resultado da soma
4+5+6 utilizando EL. <BR><BR>${4+5+6}</body>
EL - Exemplo
Na EL, existe um objeto implícito chamado param, que representa um parâmetro recebido pela página JSP. Exemplo:
<body>${param.idade >= 18 ? 'Maior' : 'Menor'}</body>Neste exemplo a página JSP recebeu um parâmetro
chamado idade. É escrito “Maior” ou “Menor” no HTML de saída conforme o valor do parâmetro.
Este objeto implícito representa o “request.getParameter”
EL – objetos implícitos
A JavaServer Pages Standard Tag Library é uma especificação criada pela Sun em 2002.
Consiste em uma coleção de bibliotecas de tags JSP, tendo cada uma um propósito bem definido, que permite escrever páginas JSP sem qualquer código Java, utilizando somente tags.
Benefícios:◦ Aumenta a legibilidade do fonte◦ Maior interação entre programador e webdesigner◦ Maior rapidez no desenvolvimento de páginas JSP
JSTL
Originalmente a implementação de referência da JSTL foi fornecida pelo projeto Apache Jakarta, e está disponível para download em http://jakarta.apache.org/taglibs
Deve-se fazer o download, descompactar o arquivo e copiar os arquivos jstl.jar e standard.jar para o diretório WEB-INF/lib do projeto no Eclipse
OBS: algumas versões do Tomcat possuem estes arquivos no diretório webapps\examples\WEB-INF\lib, ou no diretório Lib
Instalando o JSTL
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%><%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-
1"><title>Insert title here</title></head><body><c:out value="Exemplo de JSTL"/></body></html>
JSTL - Exemplo
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
Na linha em vermelho no exemplo é feita a declaração do cabeçalho, ou seja, da utilização da biblioteca JSTL.
No atributo uri declara-se o endereço identificador da biblioteca, e um prefixo que será utilizado para acessar suas tags
JSTL - Exemplo
<c:out value="Exemplo de JSTL"/> Esta linha está utilizando a tag “out” da
biblioteca Core. A sintaxe inicia com o prefixo atribuído no
cabeçalho, seguido do nome da tag e de seus atributos.
Este exemplo gera o mesmo resultado do scriptlet abaixo:
<% out.print(“Exemplo de JSTL”);%>
JSTL - Exemplo
É composto por 4 bibliotecas de tags◦ Core◦ Internacionalização e formatação◦ Acesso a banco de dados relacional (SQL)◦ Processamento de XML
JSTL
Como já foi visto no exemplo, para utilizar as bibliotecas JSTL devemos declarar a biblioteca no cabeçalho.
É muito comum utilizar as tags JSTL em conjunto com a EL nas páginas JSP.
Utilizando JSTL em conjunto com a EL, pode-se construir páginas JSP poderosas sem a utilização de scriptlets, ou seja, sem código Java.
JSTL
◦ Core <%@ taglib uri="http://java.sun.com/jsp/jstl/core"
prefix="c" %>◦ Internacionalização e Formatação
%@taglib uri=“http://java.sun.com/jsp/jstl/fmt” prefix=“fmt”%>
◦ Acesso a Banco de dados (SQL) <%@ taglib uri="http://java.sun.com/jsp/jstl/sql"
prefix=“sql" %>◦ Processamento de XML
<%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix=“x" %>
JSTL – Bibliotecas e cabeçalhos
A Core é a biblioteca com as tags de propósito geral. Condições, iterações são exemplos de tags da biblioteca Core
Tags mais comuns:◦ <c:if/> : condições◦ <c:when> : várias condições◦ <c:forEach/> : iteração◦ <c:out/> : saída de valores◦ <c:set/> e <c:remove/> : escopo de variáveis
JSTL - Core
<%@taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c” %>
<body><c:set var=“nome” value=“João”/>
Seu nome é: <c:out value=“${nome}”/><c:remove var=“nome”/></body>
JSTL – Core exemplos
Teste condicionalExemplo:<body><c:if test=“${param.sexo == ‘S’}”>
<c:out value=“Sexo masculino”/>
</c:if>
JSTL – Tag <c:if>
Várias condições, similar ao switch do Java Exemplo:<body><c:choose>
<c:when test=“${param.sexo==‘M’}”><c:out value=“Sexo masculino”/>
<c:/when><c:otherwise>
<c:out value=“Sexo feminino”/></c:otherwise>
</c:chooose></body>
JSTL – Tag When
Loop com valores de início e fim, similar ao for do Java
<body><c:forEach var=“i” begin=“1” end=“10”>
<c:out value=“${i}”/></c:forEach>
</body>
JSTL – Tag forEach
Declara e remove variáveis Exemplo:
<body><c:set var="str" value="Valor da variável var"/>Valor variável str: <c:out value="${str}"/><br><c:remove var="str"/>Variável foi removida: <c:out value="${str}"/></body>
JSTL – Tags set e remove
Biblioteca com tags que oferecem recursos para internacionalização das páginas. Oferece também tags de formatação de valores, como:◦ <fmt:formatNumber/> : formata um valor
numérico com a específica precisão ou formato◦ <fmt:formatDate/> : formata data e hora em um
formato específico
JSTL - Internacionalização e Formatação
<%@taglib uri=“http://java.sun.com/jsp/jstl/fmt” prefix=“fmt”%>
<body><jsp:useBean id=“dt”
class=“java.util.Date”/>A data de hoje é: <fmt:formatDate value=“$
{dt}”/></body>
JSTL - Internacionalização e Formatação - Exemplo
Faz a manipulação (select, insert, delete, update) de informações no banco de dados
Tags mais comuns:◦ <sql:setDataSource/> : configura conexão com
BD◦ <sql:query/> : executa comandos SELECT◦ <sql:update/> : executa comandos UPDATE,
INSERT e DELETE É preferível utilizar a arquitetura MVC para
separar a lógica de negócio de acesso ao banco de dados da camada de apresentação.
JSTL – Acesso a dados (SQL)
Implementar duas páginas JSP utilizando JSTL e EL para exibir a tabuada de um número.
A primeira página irá exibir um formulário solicitando um número, e irá chamar outra página JSP
A segunda página JSP irá exibir a tabuada do número informado na primeira página.
Exercício