O documento descreve Expression Language (EL) e JSTL. EL permite que JSPs acessem valores disponíveis de forma simples, como atributos passados por Servlets. JSTL fornece uma biblioteca de tags para gerar conteúdo dinâmico em JSPs de forma reutilizável, eliminando scriptlets. Exemplos mostram como usar EL para acessar um objeto passado por Servlet e como JSTL percorre uma lista usando a tag <c:forEach>.
2. 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}
4. Considere os artefatos
Visão Controle Modelo
Cerveja
CervejaServlet
- marca
- tamanho
+ getTamanho()
+ getMarca()
cervejas.jsp
5. 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)
6. Servlet
Abaixo o exemplo do Servlet criando uma Cerveja (1)
e depois passando para a JSP como um atributo (2)
chamado “cerva”
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);
}
7. Código Jsp
cervejas.jsp
Abaixo em azul, como acessar o atributo na 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() %>
9. 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.
10. 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
11. 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” %>
12. Algumas das tags JSTL
<c:forEach>
<c:if>
<c:choose>
<c:when> e <c:otherwise>
<c:set>
<c:remove>
14. 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);
...
15. 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>