EL e JSTL Prof. Danton Cavalcanti Franco Junior. Sintaxe para fazer expressões sem escrever código...

Preview:

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