You are on page 1of 6

Desenvolvimento de Aplicativos Web com Servlet e JSP Expression Language Introduo

Na abordagem MVC 2, as solicitaes dos usurios so atendidas por um servlet, que obtm os parmetros da requisio; com base neles, chama a lgica de negcio; coloca os javabeans resultantes na requisio, sesso ou contexto do servlet e, em seguida, encaminha a requisio de volta para uma pgina JSP onde, por fim, o resultado apresentado. Infelizmente, na apresentao dos resultados, o uso de elementos de scripting torna os projetos difceis de manter a longo prazo e encoraja o acoplamento da camada de apresentao de negcio, comprometendo a flexibilidade e escalabilidade da aplicao. Expression Language (EL), visto nesta nota de aula, permite a simplificao da camada de apresentao (pginas JSP) ao substituir os elementos de scripting ou as aes-padro jsp:useBean e jsp:getProperty com entradas curtas e legveis.

Contedo
Vantagens da EL Desvantagens da EL Comparao das sintaxes EL e tags JSP Sintaxe para acessar atributos e propriedades Sintaxe para acessar propriedades aninhadas de javabean Sintaxe para acesso a elementos de colees (mapas, listas e arrays) Operadores e palavras-chave Bibliografia

Vantagens da EL
Prov sintaxe compacta, mais legvel e elegante que a das tags JSP; Suporta acesso a propriedades aninhadas; Suporta acesso a colees (mapas, listas e arrays); Lidar melhor com valores nulos; Prov mais funcionalidade

Desvantagens da EL
No cria um javabean se ele no existir; No prov um modo de configurar uma propriedade

Comparao das sintaxes EL e tags JSP


Exemplo com EL 1

<table> <tr> <td>Nome:</td>

2010 Antonio Passos | http://ead.antoniopassos.com.br | Todos os direitos reservados

Desenvolvimento de Aplicativos Web com Servlet e JSP Expression Language


<td>${pessoa.nome}</td> </tr> <tr> <td>Sobrenome:</td> <td>${pessoa.sobrenome}</td> </tr> </table>

Mesmo exemplo com tags JSP

<jsp:useBean id=pessoa scope=session class= br.pro.antoniopassos.modelo.Pessoa /> <table> <tr> <td>Nome:</td> <td><jsp:getProperty name=pessoa propety=nome ></td> </tr> <tr> <td>Sobrenome:</td> <td><jsp:getProperty name=pessoa propety=sobrenome ></td> </tr> </table>

Sintaxe para acessar atributos e propriedades


Sintaxe para acessar um atributo ${atributo} Exemplo: No servlet...
Date hoje = new Date(); request.setAttribute(hoje, hoje);

Na pgina JSP...
<p>Hoje: ${hoje} </p>

Sintaxe para acessar propriedade de javabean ${javabean.propriedade}

Exemplo: No servlet...
String nome = Fulano; String sobrenome = Tal; Pessoa pessoa = new Pessoa(nome, sobrenome); session.setAttribute(pessoa, pessoa);

Na pgina JSP...

2010 Antonio Passos | http://ead.antoniopassos.com.br | Todos os direitos reservados

Desenvolvimento de Aplicativos Web com Servlet e JSP Expression Language


<p>Nome: ${pessoa.nome}</p> <p>Sobrenome: ${pessoa.sobrenome}</p>

A sequncia de escopos em que a Java busca por um atributo a da tabela seguinte. Escopo page request session application Objeto EL implcito pageScope requestScope sessionScope applicationScope Descrio O bean est armazenado no objeto PageContext O bean est armazenado no objeto HttpServletRequest O bean est armazenado no objeto HttpSession O bean est armazenado no objeto ServletContext

Sintaxe para acessar propriedades aninhadas de javabean


Sintaxe para acessar propriedade aninhada ${atributo.propriedade01.propriedade02} Exemplo: No servlet...
String nome = Fulano; String sobrenome = Tal; Pessoa pessoa = new Pessoa(nome, sobrenome); int DDD = 11; String numero = 8888-9999; Telefone telefone = new Telefone(DDD, numero); pessoa.setTelefone(telefone); session.setAttribute(pessoa, pessoa);

Na pgina JSP...
<p>Nome: ${pessoa.nome}</p> <p>Sobrenome: ${pessoa.sobrenome}</p> <p>Telefone: (${pessoa.telefone.DDD}) ${pessoa.telefone.numero}</p>

Sintaxe para acesso a elementos de colees (mapas, listas e arrays)


A sintaxe para acessar os diferentes tipos de coleo a mesma: ${nomeDaColecao[entrada]} 3 onde, se a varivel de escopo for um array, a entrada corresponder ao ndice do array; se a varivel de escopo for um objeto que implementa a interface List, a entrada corresponder ao

2010 Antonio Passos | http://ead.antoniopassos.com.br | Todos os direitos reservados

Desenvolvimento de Aplicativos Web com Servlet e JSP Expression Language


ndice da lista; se a varivel de escopo for um objeto que implementa a interface Map, a entrada corresponder chave do mapa. Exemplo No servlet...
List nomes = new ArrayList(); Nomes.add(Fulano); Nomes.add(Beltrano); Nomes.add(Cicrano); request.setAttribute(nomes, nomes);

Na pgina JSP...
<p>Primeiro nome: ${nomes[0]}</p> <p>Segundo nome: ${nomes[1]}</p> <p>Terceiro nome: ${nomes[2]}</p>

Operadores e palavras-chave
Operadores aritmticos Operador + * / % Alternativa Descrio Adio Subtrao Multiplicao Diviso Mdulo (resto)

div mod

Operadores relacionais Operador == != < > <= >= Alternativa eq ne lt gt Le ge Descrio Igual a No igual a Menor que Maior que Menor que ou igual a Maior que ou igual a

Operadores lgicos Operador && || ! Alternativa and or not Descrio E Ou No

Outros operadores Operador Alternativa Descrio

2010 Antonio Passos | http://ead.antoniopassos.com.br | Todos os direitos reservados

Desenvolvimento de Aplicativos Web com Servlet e JSP Expression Language


empty x x?y:z Retorna true se o valor de x for null ou igual a uma string vazia Se x for true, retorna y. Caso contrrio, retorna z.

Palavras-chave usadas em expresses Palavra null true false Alternativa Descrio Nulo Verdadeiro Falso

2010 Antonio Passos | http://ead.antoniopassos.com.br | Todos os direitos reservados

Desenvolvimento de Aplicativos Web com Servlet e JSP Expression Language Bibliografia


CHOPRA, Vivek et al. Beginning JavaServer Pages. Wrox, 2005. MURACH, Joel; STEELMAN, Andrea. Murachs Java Servlets and JSP. Mike Murach & Associates, Inc, 2008. GONALVES, Edson. Desenvolvendo aplicaes Web com JSP, Servlets, JavaServer Faces, Hibernate, EJB 3 Persistence e Ajax. Rio de Janeiro: Editora Cincia Moderna Ltda, 2007. HALL, Marty; BROWN, Larry. Core Servlets e JavaServer Pages: tecnologias core. Rio de Janeiro: Editora Cincia Moderna Ltda., 2005. PERRY, Bruce W. Java Servlet & JSP Cookbook. OReilly Media, Inc., 2004. QIAN, Kai et al. Desenvolvimento Web Java. Rio de Janeiro: LTD, 2010.

2010 Antonio Passos | http://ead.antoniopassos.com.br | Todos os direitos reservados

You might also like