Your SlideShare is downloading. ×
0
JSP - Expression Language
JSP - Expression Language
JSP - Expression Language
JSP - Expression Language
JSP - Expression Language
JSP - Expression Language
JSP - Expression Language
JSP - Expression Language
JSP - Expression Language
JSP - Expression Language
JSP - Expression Language
JSP - Expression Language
JSP - Expression Language
JSP - Expression Language
JSP - Expression Language
JSP - Expression Language
JSP - Expression Language
JSP - Expression Language
JSP - Expression Language
JSP - Expression Language
JSP - Expression Language
JSP - Expression Language
JSP - Expression Language
JSP - Expression Language
JSP - Expression Language
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

JSP - Expression Language

16,221

Published on

Apresentação sobre a linguagem de expressão (EL) 2.0, que integra os materiais didáticos do curso DAWJ - Desenvolvimento de Aplicativos Web com Servlet e JavaServer Pages, um dos cursos totalmente a …

Apresentação sobre a linguagem de expressão (EL) 2.0, que integra os materiais didáticos do curso DAWJ - Desenvolvimento de Aplicativos Web com Servlet e JavaServer Pages, um dos cursos totalmente a distância oferecidos pelo prof. Antonio Passos. Para mais informações, acesse http://www.antoniopassos.com/.

Published in: Self Improvement, Technology
1 Comment
3 Likes
Statistics
Notes
  • muito boa a apresentacao. parabens!
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total Views
16,221
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
1,383
Comments
1
Likes
3
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

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(quot;requisicaoquot;, quot;Objeto-requisiçãoquot;); HttpSession sessao = request.getSession(); sessao.setAttribute(quot;sessaoquot;, quot;Objeto-sessãoquot;); ServletContext contexto = this.getServletContext(); contexto.setAttribute(quot;contextoquot;, quot;Objeto-contextoquot;); RequestDispatcher dispatcher = request.getRequestDispatcher(quot;/resultado.jspquot;); dispatcher.forward(request, response); } }
  • 9. EL – Exemplo 01 (cont) <%@ page language=quot;javaquot; contentType=quot;text/html; charset=UTF-8quot; pageEncoding=quot;UTF-8quot;%> <!DOCTYPE html PUBLIC quot;-//W3C//DTD HTML 4.01 Transitional//ENquot; quot;http://www.w3.org/TR/html4/loose.dtdquot;> <html> <head> <meta http-equiv=quot;Content-Typequot; content=quot;text/html; charset=UTF-8quot;> <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(quot;Tomcatquot;, quot;99999-000quot;); Pessoa pessoa = new Pessoa(quot;Antonioquot;, quot;Passosquot;, endereco); request.setAttribute(quot;pessoaquot;, pessoa); RequestDispatcher dispatcher = request.getRequestDispatcher(quot;/resultado.jspquot;); dispatcher.forward(request, response); } }
  • 14. EL – JavaBean – Exemplo 02 (final) <%@ page language=quot;javaquot; contentType=quot;text/html; charset=UTF-8quot; pageEncoding=quot;UTF-8quot;%> <!DOCTYPE html PUBLIC quot;-//W3C//DTD HTML 4.01 Transitional//ENquot; quot;http://www.w3.org/TR/html4/loose.dtdquot;> <html> <head> <meta http-equiv=quot;Content-Typequot; content=quot;text/html; charset=UTF-8quot;> <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(quot;Maranhãoquot;); estados.add(quot;Piauíquot;); estados.add(quot;Cearáquot;); estados.add(quot;Rio Grande do Nortequot;); estados.add(quot;Paraíbaquot;); estados.add(quot;Pernambucoquot;); estados.add(quot;Alagoasquot;); estados.add(quot;Sergipequot;); estados.add(quot;Bahiaquot;); Map capitais = new HashMap(); capitais.put(quot;Maranhaoquot;, quot;São Luísquot;); capitais.put(quot;Piauiquot;,quot;Teresinaquot;); capitais.put(quot;Cearaquot;,quot;Fortalezaquot;); capitais.put(quot;Rio Grande do Nortequot;, quot;Natalquot;); capitais.put(quot;Paraibaquot;,quot;João Pessoaquot;); capitais.put(quot;Pernambucoquot;, quot;Recifequot;); capitais.put(quot;Alagoasquot;, quot;Maceióquot;); capitais.put(quot;Sergipequot;, quot;Aracajuquot;); capitais.put(quot;Bahiaquot;, quot;Salvadorquot;); request.setAttribute(quot;estadosquot;, estados); HttpSession sessao = request.getSession(); sessao.setAttribute(quot;capitaisquot;, capitais); RequestDispatcher dispatcher = request.getRequestDispatcher(quot;/resultado.jspquot;); dispatcher.forward(request, response); } }
  • 17. EL – Exemplo 03 (cont) <%@ page language=quot;javaquot; contentType=quot;text/html; charset=UTF-8quot; pageEncoding=quot;UTF-8quot;%> <!DOCTYPE html PUBLIC quot;-//W3C//DTD HTML 4.01 Transitional//ENquot; quot;http://www.w3.org/TR/html4/loose.dtdquot;> <html> <head> <meta http-equiv=quot;Content-Typequot; content=quot;text/html; charset=UTF-8quot;> <title>EL - Coleções</title> </head> <body> <p> A capital do estado do ${estados[0]} é ${capitais[quot;Maranhaoquot;]}. </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=quot;javaquot; contentType=quot;text/html; charset=UTF-8quot; pageEncoding=quot;UTF-8quot;%> <!DOCTYPE html PUBLIC quot;-//W3C//DTD HTML 4.01 Transitional//ENquot; quot;http://www.w3.org/TR/html4/loose.dtdquot;> <html> <head> <meta http-equiv=quot;Content-Typequot; content=quot;text/html; charset=UTF-8quot;> <title>EL - Objetos implícitos</title> </head> <body> <form action=quot;resultado.jspquot;> <table border=quot;1quot;> <tr> <td>Nome:</td> <td><input type=quot;textquot; name=quot;nomequot;/></td> </tr> <tr> <td>Sobrenome:</td> <td><input type=quot;textquot; name=quot;sobrenomequot;/></td> </tr> <tr> <td colspan=quot;2quot; align=quot;centerquot;> <input type=quot;submitquot; value=quot;Enviarquot;/> <input type=quot;resetquot; value=quot;Limparquot;/> </td> </tr> </table> </form> </body> </html>
  • 20. EL – Exemplo 04 (cont) <%@ page language=quot;javaquot; contentType=quot;text/html; charset=UTF-8quot; pageEncoding=quot;UTF-8quot;%> <!DOCTYPE html PUBLIC quot;-//W3C//DTD HTML 4.01 Transitional//ENquot; quot;http://www.w3.org/TR/html4/loose.dtdquot;> <html> <head> <meta http-equiv=quot;Content-Typequot; content=quot;text/html; charset=UTF-8quot;> <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=quot;javaquot; contentType=quot;text/html; charset=UTF-8quot; pageEncoding=quot;UTF-8quot;%> <!DOCTYPE html PUBLIC quot;-//W3C//DTD HTML 4.01 Transitional//ENquot; quot;http://www.w3.org/TR/html4/loose.dtdquot;> <html> <head> <meta http-equiv=quot;Content-Typequot; content=quot;text/html; charset=UTF-8quot;> <title>EL - Operador condicional</title> </head> <body> <form action=quot;resultado.jspquot;> <table border=quot;1quot;> <tr><td>Nome:</td><td><input type=quot;textquot; name=quot;nomequot;/></td></tr> <tr><td>Sexo:</td><td><input type=quot;textquot; name=quot;sexoquot;/></td></tr> <tr> <td colspan=quot;2quot; align=quot;centerquot;> <input type=quot;submitquot; value=quot;Enviarquot;/> <input type=quot;resetquot; value=quot;Limparquot;/> </td> </tr> </table> </form> </body> </html>
  • 24. EL – Exemplo 05 (cont) <%@ page language=quot;javaquot; contentType=quot;text/html; charset=UTF-8quot; pageEncoding=quot;UTF-8quot;%> <!DOCTYPE html PUBLIC quot;-//W3C//DTD HTML 4.01 Transitional//ENquot; quot;http://www.w3.org/TR/html4/loose.dtdquot;> <html> <head> <meta http-equiv=quot;Content-Typequot; content=quot;text/html; charset=UTF-8quot;> <title>EL - Operador condicional</title> </head> <body> Olá, ${param.sexo==quot;Mquot; ? quot;Srquot; : quot;Sraquot;} ${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.

×