java web 5 - jsp, expression language e taglibs

18
JSP & Servlets Expression Language Eduardo Mendes

Upload: eduardo-mendes-de-oliveira

Post on 25-Jun-2015

2.283 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Java Web 5 - JSP, Expression Language e Taglibs

JSP & Servlets Expression Language

Eduardo Mendes

Page 2: Java Web 5 - JSP, Expression Language e Taglibs

EL ou Expression Language

  A Expression Language é uma forma simples de uma JSP acessar valores que lhe estejam disponíveis

  Que valores?   Por exemplo, um atributo passado por um método de

Servlet   Se existe um atributo chamado “valor” então na JSP é

possível acessá-lo através da seguinte sintaxe: ${valor}

Page 3: Java Web 5 - JSP, Expression Language e Taglibs

Exemplo de utilização

Page 4: Java Web 5 - JSP, Expression Language e Taglibs

Considere os artefatos

Visão Controle Modelo

- marca - tamanho + getTamanho() + getMarca() cervejas.jsp

CervejaServlet Cerveja

Page 5: Java Web 5 - JSP, Expression Language e Taglibs

Fluxo do exemplo   Digamos que eu queira acessar um Servlet e que

ele crie um objeto do tipo Cerveja (que possui marca e tamanho)

  E que depois de criado eu passo o objeto como atributo na requisição

  Na JSP iremos acessar este objeto Cerveja através de EL (Expression Language)

Page 6: Java Web 5 - JSP, Expression Language e Taglibs

Servlet

public void doGet( HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { Cerveja ce = new Cerveja(); request.setAttribute(“cerva”, ce); RequestDispatcher dispatcher = request.getRequestDispatcher("cervejas.jsp"); dispatcher.forward(request, response);

}

Abaixo o exemplo do Servlet criando uma Cerveja (1) e depois passando para a JSP como um atributo (2)

chamado “cerva”

Page 7: Java Web 5 - JSP, Expression Language e Taglibs

Código Jsp cervejas.jsp

<html> <body> Marca da cerveja é: ${cerva.marca} <br/> Tamanho da cerveja é: ${cerva.tamanho} </body> </html> Substitui: <%= ((Cerveja) request.getAttribute(“cerva”)).getMarca() %> <%= ((Cerveja) request.getAttribute(“cerva”)).getTamanho() %>

Abaixo em azul, como acessar o atributo na JSP:

Page 8: Java Web 5 - JSP, Expression Language e Taglibs

JSP & Servlets JSTL

Eduardo Mendes

Page 9: Java Web 5 - JSP, Expression Language e Taglibs

Taglibs   O que é Tag Library?

  Biblioteca de tags customizadas que são utilizadas na composição de páginas JSP

  Classes Java usadas na forma de Tags

  Por que utilizar Tags Customizadas?   Eliminam a utilização de scriptlets e

redundância de código em páginas JSP.   Gera conteúdo dinâmico reutilizável.

Page 10: Java Web 5 - JSP, Expression Language e Taglibs

Taglibs   Composição de uma Tag Customizada

  Uma classe Java: a implementação   Um arquivo “.tld”: metadados

  Como instalar uma taglib em uma aplicação   Instale as classes compiladas ou o arquivo jar

na pasta lib da aplicação

  Na JSP informe coloque uma “diretiva”   A diretiva informa que você irá utilizar a taglib

Page 11: Java Web 5 - JSP, Expression Language e Taglibs

JSTL   O que é JSTL

  É um acrônimo para Jsp Standar Tag Lib   Ou seja, uma taglib   Os arquivos que precisam ser instalados para

utilizá-la são:   standard.jar   jstl.jar

  Diretiva:   <%@ taglib uri=“http://java.sun.com/jsp/jstl/core”

prefix=“c” %>

Page 12: Java Web 5 - JSP, Expression Language e Taglibs

Algumas das tags JSTL   <c:forEach>   <c:if>   <c:choose>

<c:when> e <c:otherwise>   <c:set>   <c:remove>

Page 13: Java Web 5 - JSP, Expression Language e Taglibs

Um exemplo com c:forEach

Page 14: Java Web 5 - JSP, Expression Language e Taglibs

A tag <c:forEach>   Código do Servlet: um array passado como

atributo ... String[] listaFilmes = {“Matrix”,”Retorno do Rei”,

“Guerra nas estrelas”}; request.setAttribute(“listaFilmes”, listaFilmes); ...

Page 15: Java Web 5 - JSP, Expression Language e Taglibs

A tag <c:forEach>   Código Jsp <%@ taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/

core” %> <html> <body> <h1>Lista de Filmes</h1> <ul> <c:forEach var=“filme” items=“${listaFilmes}” > <li>${filme}</li> </c:forEach>

</ul> </body> </html>

Page 16: Java Web 5 - JSP, Expression Language e Taglibs

<c:forEach var=“filme” items=“${listaFilmes}” > <li>${filme}</li> </c:forEach>

A tag <c:forEach>

Page 17: Java Web 5 - JSP, Expression Language e Taglibs

Escopo da variável var Tag

<c:forEach var=“filme” items=“${listaFilmes}” ${filme} </c:forEach>

${filme}

Page 18: Java Web 5 - JSP, Expression Language e Taglibs

Pense...   No exemplo o <c:forEach> percorreu um array, da

mesma forma ele pode ser utilizado para percorrer List, ArrayList e Coleções.