Java Web 5 - JSP, Expression Language e Taglibs

Post on 25-Jun-2015

2,277 views 1 download

Tags:

transcript

JSP & Servlets Expression Language

Eduardo Mendes

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}

Exemplo de utilização

Considere os artefatos

Visão Controle Modelo

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

CervejaServlet Cerveja

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)

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”

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:

JSP & Servlets JSTL

Eduardo Mendes

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.

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

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” %>

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

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

Um exemplo com c:forEach

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); ...

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>

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

A tag <c:forEach>

Escopo da variável var Tag

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

${filme}

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

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