Upload
eduardo-mendes-de-oliveira
View
2.285
Download
1
Tags:
Embed Size (px)
Citation preview
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.