JSP - Expression Language

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Favorites, Groups & Events

    JSP - Expression Language - Presentation Transcript

    1. JavaServer Pages Expression Language (EL) Prof. Antonio Passos
    2. EL - Motivação Substituir na etapa final - apresentar os resultados na página JSP - da abordagem MVC os elementos de script e os elementos jsp:useBean, jsp:getProperty e jsp:setProperty por entradas curtas e legíveis, simplificando a camada de apresentação.
    3. EL – Vantagens (1/2) Acesso conciso a objetos armazenados ● Ex.: ${pessoa} Notação resumida para propriedades de beans ● Ex.: ${pessoa.nome} Acesso simples para elementos de coleção ● Ex.: ${pessoas[3]} Acesso sucinto para parâmetros de requisição, ● cookies e outros dados de requisição Ex.: ${param.idPessoa} ${cookie.pessoaCookie.value}
    4. EL – Vantagens (2/2) Conjunto de operadores simples ● Ex.: +, -, * e / (aritméticos) == e != (relacionais) && e || (lógicos) Operador condicional ● Ex.: ${ teste ? expressão_1 : expressão_2} Conversão automática de tipos ● Valores vazios em vez de mensagens de erros ●
    5. EL - Sintaxe ${expressão} ou #{expressão} 'expressão' é a expressão EL a ser avaliada
    6. EL – Palavras reservadas and eq ● ● gt true ● ● instanceof or ● ● ne lt ● ● false empty ● ● not if ● ● ge null ● ● div mod ● ●
    7. EL – Variáveis de escopo ”Variáveis de escopo” são os objetos ● armazenados pelo Servlet através do método setAttribute em HttpServletRequest, HttpSession ou ServletContext Para acessá-los através de EL, simplemente usa- ● se seu nome em um elemento EL. Ex.: ${pessoa} procurará em PageContext, HttpServletRequest, HttpSession e ServletContext por um atributo ”pessoa”. Se localizado, seu método toString será chamado. Se não, será devolvido uma string vazia.
    8. EL – Exemplo 01 package br.pro.antoniopassos.EL; import java.io.IOException; import javax.servlet.RequestDispatcher; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; public class ServletEscopo extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet { static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setAttribute(\"requisicao\", \"Objeto-requisição\"); HttpSession sessao = request.getSession(); sessao.setAttribute(\"sessao\", \"Objeto-sessão\"); ServletContext contexto = this.getServletContext(); contexto.setAttribute(\"contexto\", \"Objeto-contexto\"); RequestDispatcher dispatcher = request.getRequestDispatcher(\"/resultado.jsp\"); dispatcher.forward(request, response); } }
    9. EL – Exemplo 01 (cont) <%@ page language=\"java\" contentType=\"text/html; charset=UTF-8\" pageEncoding=\"UTF-8\"%> <!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\"> <html> <head> <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"> <title>EL - Variáveis de escopo</title> </head> <body> <p> Request = ${requisicao} </p> <p> HttpSession = ${sessao} </p> <p> ServletContext = ${contexto} </p> </body> </html>
    10. EL - JavaBean Para acessar-se as propriedades individuais de ● beans, usa-se a sintaxe: ${bean.propriedade} Ex.: ${pessoa.nome} A EL permite aninhar-se propriedades ● Ex.: ${pessoa.endereco.cep}
    11. EL – JavaBean – Exemplo 02 package br.pro.antoniopassos.EL; public class Pessoa { String nome; String sobrenome; Endereco endereco; public Pessoa(String nome, String sobrenome, Endereco endereco) { super(); this.nome = nome; this.sobrenome = sobrenome; this.endereco = endereco; } public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } public String getSobrenome() { return sobrenome; } public void setSobrenome(String sobrenome) { this.sobrenome = sobrenome; } public Endereco getEndereco() { return endereco; } public void setEndereco(Endereco endereco) { this.endereco = endereco; } }
    12. EL – JavaBean – Exemplo 02 (cont) package br.pro.antoniopassos.EL; public class Endereco { private String bairro; private String cep; public Endereco(String bairro, String cep) { super(); this.bairro = bairro; this.cep = cep; } public String getBairro() { return bairro; } public void setBairro(String bairro) { this.bairro = bairro; } public String getCep() { return cep; } public void setCep(String cep) { this.cep = cep; } }
    13. EL – JavaBean – Exemplo 02 (cont) package br.pro.antoniopassos.EL; import java.io.IOException; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class ServletBean extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet { static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Endereco endereco = new Endereco(\"Tomcat\", \"99999-000\"); Pessoa pessoa = new Pessoa(\"Antonio\", \"Passos\", endereco); request.setAttribute(\"pessoa\", pessoa); RequestDispatcher dispatcher = request.getRequestDispatcher(\"/resultado.jsp\"); dispatcher.forward(request, response); } }
    14. EL – JavaBean – Exemplo 02 (final) <%@ page language=\"java\" contentType=\"text/html; charset=UTF-8\" pageEncoding=\"UTF-8\"%> <!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\"> <html> <head> <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"> <title>EL - JavaBeans</title> </head> <body> <p>Nome = ${pessoa.nome}</p> <p>Sobrenome = ${pessoa.sobrenome}</p> <p>Bairro = ${pessoa.endereco.bairro}</p> <p>CEP = ${pessoa.endereco.cep}</p> </body> </html>
    15. EL - Coleções A EL permite o acesso a entradas de variáveis de ● escopo relativas a array, List e Map usando a seguinte notação de arrays: ${atributo[entrada]} Ex. 01: ${estado[1]} Ex. 02: ${estado[”capital”]} No exemplo 02, em que a chave do Map é um nome ● de variável Java válido, pode-se usar a notação de pontos: Ex.: ${estado.maranhao}
    16. EL – Exemplo 03 package br.pro.antoniopassos.EL; import java.io.IOException; import java.util.*; import javax.servlet.*; import javax.servlet.http.*; public class ServletColecao extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet { static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { List estados = new ArrayList(); estados.add(\"Maranhão\"); estados.add(\"Piauí\"); estados.add(\"Ceará\"); estados.add(\"Rio Grande do Norte\"); estados.add(\"Paraíba\"); estados.add(\"Pernambuco\"); estados.add(\"Alagoas\"); estados.add(\"Sergipe\"); estados.add(\"Bahia\"); Map capitais = new HashMap(); capitais.put(\"Maranhao\", \"São Luís\"); capitais.put(\"Piaui\",\"Teresina\"); capitais.put(\"Ceara\",\"Fortaleza\"); capitais.put(\"Rio Grande do Norte\", \"Natal\"); capitais.put(\"Paraiba\",\"João Pessoa\"); capitais.put(\"Pernambuco\", \"Recife\"); capitais.put(\"Alagoas\", \"Maceió\"); capitais.put(\"Sergipe\", \"Aracaju\"); capitais.put(\"Bahia\", \"Salvador\"); request.setAttribute(\"estados\", estados); HttpSession sessao = request.getSession(); sessao.setAttribute(\"capitais\", capitais); RequestDispatcher dispatcher = request.getRequestDispatcher(\"/resultado.jsp\"); dispatcher.forward(request, response); } }
    17. EL – Exemplo 03 (cont) <%@ page language=\"java\" contentType=\"text/html; charset=UTF-8\" pageEncoding=\"UTF-8\"%> <!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\"> <html> <head> <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"> <title>EL - Coleções</title> </head> <body> <p> A capital do estado do ${estados[0]} é ${capitais[\"Maranhao\"]}. </p> </body> </html>
    18. EL – Objetos implícitos pageScope cookie ● ● requestScope initParam ● ● sessionScope pageContext ● ● applicationScope ● param ● paramValues ● header ● headerValues ●
    19. EL – Exemplo 04 <%@ page language=\"java\" contentType=\"text/html; charset=UTF-8\" pageEncoding=\"UTF-8\"%> <!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\"> <html> <head> <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"> <title>EL - Objetos implícitos</title> </head> <body> <form action=\"resultado.jsp\"> <table border=\"1\"> <tr> <td>Nome:</td> <td><input type=\"text\" name=\"nome\"/></td> </tr> <tr> <td>Sobrenome:</td> <td><input type=\"text\" name=\"sobrenome\"/></td> </tr> <tr> <td colspan=\"2\" align=\"center\"> <input type=\"submit\" value=\"Enviar\"/> <input type=\"reset\" value=\"Limpar\"/> </td> </tr> </table> </form> </body> </html>
    20. EL – Exemplo 04 (cont) <%@ page language=\"java\" contentType=\"text/html; charset=UTF-8\" pageEncoding=\"UTF-8\"%> <!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\"> <html> <head> <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"> <title>EL - Objetos implícitos</title> </head> <body> Olá, ${param.nome} ${param.sobrenome}! </body> </html>
    21. EL - Operadores Lógicos Aritméticos ● ● && and || or ! not +- * / div Empyt (vazio) % mod ● empty Relacionais ● == eq != ne < lt > gt <= le >= ge
    22. EL – Expressão condicional A EL suporta o operador condiconal ”?”, cuja ● sintaxe é a seguinte: ${ teste ? expressão_1 : expressão_2}
    23. EL – Exemplo 05 <%@ page language=\"java\" contentType=\"text/html; charset=UTF-8\" pageEncoding=\"UTF-8\"%> <!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\"> <html> <head> <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"> <title>EL - Operador condicional</title> </head> <body> <form action=\"resultado.jsp\"> <table border=\"1\"> <tr><td>Nome:</td><td><input type=\"text\" name=\"nome\"/></td></tr> <tr><td>Sexo:</td><td><input type=\"text\" name=\"sexo\"/></td></tr> <tr> <td colspan=\"2\" align=\"center\"> <input type=\"submit\" value=\"Enviar\"/> <input type=\"reset\" value=\"Limpar\"/> </td> </tr> </table> </form> </body> </html>
    24. EL – Exemplo 05 (cont) <%@ page language=\"java\" contentType=\"text/html; charset=UTF-8\" pageEncoding=\"UTF-8\"%> <!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\"> <html> <head> <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"> <title>EL - Operador condicional</title> </head> <body> Olá, ${param.sexo==\"M\" ? \"Sr\" : \"Sra\"} ${param.nome} </body> </html>
    25. EL – Bibliografia consultada GONÇAVES, Edson. Desenvolvendo aplicações ● Web com JSP, Servlets, JavaServer Faces, Hibernate, EJB 3 Persistence e AJAX. Rio de Janeiro: Ciência Moderna Ltda, 2007. HALL, Marty & BROWN, Larry. Core Servlets e ● JavaServer Pages. Volume 1: tecnologia core. Rio de Janeiro: Ciência Moderna Ltda, 2005.

    + antoniopassosantoniopassos, 2 years ago

    custom

    3644 views, 0 favs, 7 embeds more stats

    Apresentação sobre a linguagem de expressão (EL) more

    More Info

    CC Attribution License

    Go to text version
    • Total Views 3644
      • 2800 on SlideShare
      • 844 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 103
    Most viewed embeds
    • 788 views on http://www.webly.com.br
    • 41 views on http://forum.ievolutionweb.com
    • 10 views on http://forum.webly.com.br
    • 2 views on http://www.antoniopassos.pro.br
    • 1 views on http://209.85.207.104

    more

    All embeds
    • 788 views on http://www.webly.com.br
    • 41 views on http://forum.ievolutionweb.com
    • 10 views on http://forum.webly.com.br
    • 2 views on http://www.antoniopassos.pro.br
    • 1 views on http://209.85.207.104
    • 1 views on http://74.125.47.132
    • 1 views on http://74.125.95.132

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as innappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel

    Categories

    Tags