Java Web 5 - JSP, Expression Language e Taglibs

3.235 visualizações

Publicada em

0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
3.235
No SlideShare
0
A partir de incorporações
0
Número de incorporações
298
Ações
Compartilhamentos
0
Downloads
103
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Java Web 5 - JSP, Expression Language e Taglibs

  1. 1. JSP & ServletsExpression Language Eduardo Mendes
  2. 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}
  3. 3. Exemplo de utilização
  4. 4. Considere os artefatosVisão Controle Modelo Cerveja CervejaServlet - marca - tamanho + getTamanho() + getMarca()cervejas.jsp
  5. 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. 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. 7. Código Jsp cervejas.jspAbaixo 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() %>
  8. 8. JSP & Servlets JSTL Eduardo Mendes
  9. 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. 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. 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. 12. Algumas das tags JSTL  <c:forEach>  <c:if>  <c:choose> <c:when> e <c:otherwise>  <c:set>  <c:remove>
  13. 13. Um exemplo com c:forEach
  14. 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. 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>
  16. 16. A tag <c:forEach><c:forEach var=“filme” items=“${listaFilmes}” > <li>${filme}</li></c:forEach>
  17. 17. Escopo da variável var  Tag<c:forEach var=“filme” items=“${listaFilmes}” ${filme}</c:forEach> ${filme}
  18. 18. Pense...  No exemplo o <c:forEach> percorreu um array, da mesma forma ele pode ser utilizado para percorrer List, ArrayList e Coleções.

×