Introdu¸˜o       ca                  Sintaxe JSP                 EL e Taglibs                 Model View Controller       ...
Introdu¸˜o       ca                   Sintaxe JSP            EL e Taglibs   Model View ControllerRoteiro         1   Intro...
Introdu¸˜o       ca               Sintaxe JSP             EL e Taglibs      Model View ControllerObserva¸˜o sobre o conte´...
Introdu¸˜o       ca              Sintaxe JSP             EL e Taglibs      Model View ControllerDefini¸˜es     coColocando ...
Introdu¸˜o       ca              Sintaxe JSP             EL e Taglibs    Model View ControllerDefini¸˜es     coColocando o ...
Introdu¸˜o       ca                     Sintaxe JSP    EL e Taglibs          Model View ControllerDefini¸˜es     coNosso pr...
Introdu¸˜o       ca                  Sintaxe JSP               EL e Taglibs        Model View ControllerDefini¸˜es     coNo...
Introdu¸˜o       ca              Sintaxe JSP             EL e Taglibs      Model View ControllerDefini¸˜es     coSobre o c´...
Introdu¸˜o       ca              Sintaxe JSP             EL e Taglibs   Model View ControllerDefini¸˜es     coObjetos Impl´...
Introdu¸˜o       ca                   Sintaxe JSP                EL e Taglibs   Model View ControllerDefini¸˜es     coC´dig...
Introdu¸˜o       ca                    Sintaxe JSP                EL e Taglibs   Model View ControllerDiretivasDiretivas  ...
Introdu¸˜o       ca                    Sintaxe JSP              EL e Taglibs         Model View ControllerDiretivasA diret...
Introdu¸˜o       ca                     Sintaxe JSP               EL e Taglibs   Model View ControllerDiretivasA diretiva ...
Introdu¸˜o       ca              Sintaxe JSP             EL e Taglibs        Model View ControllerDiretivasA diretiva tagl...
Introdu¸˜o       ca               Sintaxe JSP            EL e Taglibs        Model View ControllerSintaxeDefini¸˜o de c´dig...
Introdu¸˜o       ca                     Sintaxe JSP                     EL e Taglibs                      Model View Contr...
Introdu¸˜o       ca              Sintaxe JSP           EL e Taglibs      Model View ControllerSintaxeExercicio I: Criando ...
Introdu¸˜o       ca                 Sintaxe JSP           EL e Taglibs        Model View ControllerEL: Expression Language...
Introdu¸˜o       ca                 Sintaxe JSP           EL e Taglibs        Model View ControllerEL: Expression Language...
Introdu¸˜o       ca                   Sintaxe JSP                EL e Taglibs   Model View ControllerEL: Expression Langua...
Introdu¸˜o       ca                  Sintaxe JSP              EL e Taglibs   Model View ControllerEL: Expression LanguageE...
Introdu¸˜o       ca              Sintaxe JSP             EL e Taglibs       Model View ControllerTaglibsMotiva¸˜o      ca ...
Introdu¸˜o       ca                Sintaxe JSP            EL e Taglibs        Model View ControllerTaglibsJavaBeans: acess...
Introdu¸˜o       ca              Sintaxe JSP           EL e Taglibs      Model View ControllerTaglibsJavaBeans            ...
Introdu¸˜o       ca                     Sintaxe JSP                 EL e Taglibs               Model View ControllerTaglib...
Introdu¸˜o       ca              Sintaxe JSP             EL e Taglibs       Model View ControllerJSTLJavaServer Pages Stan...
Introdu¸˜o       ca                 Sintaxe JSP               EL e Taglibs           Model View ControllerJSTLInstala¸˜o d...
Introdu¸˜o       ca                    Sintaxe JSP                EL e Taglibs              Model View ControllerEstrutura...
Introdu¸˜o       ca                 Sintaxe JSP             EL e Taglibs   Model View ControllerEstruturas de controleAtri...
Introdu¸˜o       ca                Sintaxe JSP            EL e Taglibs       Model View ControllerEstruturas de controleEx...
Introdu¸˜o       ca                    Sintaxe JSP                EL e Taglibs              Model View ControllerEstrutura...
Introdu¸˜o       ca                Sintaxe JSP             EL e Taglibs      Model View ControllerEstruturas de controleSe...
Introdu¸˜o       ca                     Sintaxe JSP                  EL e Taglibs        Model View ControllerEstruturas d...
Introdu¸˜o       ca                Sintaxe JSP           EL e Taglibs   Model View ControllerEstruturas de controleExercic...
Introdu¸˜o       ca                Sintaxe JSP           EL e Taglibs      Model View ControllerEstruturas de controleExer...
Introdu¸˜o       ca                   Sintaxe JSP              EL e Taglibs   Model View ControllerEstruturas de controleI...
Introdu¸˜o       ca                 Sintaxe JSP            EL e Taglibs       Model View ControllerEstruturas de controleO...
Introdu¸˜o       ca                Sintaxe JSP            EL e Taglibs        Model View ControllerIntrodu¸˜o       caServ...
Introdu¸˜o       ca                Sintaxe JSP            EL e Taglibs        Model View ControllerIntrodu¸˜o       caServ...
Introdu¸˜o       ca              Sintaxe JSP             EL e Taglibs       Model View ControllerIntrodu¸˜o       caObjeti...
Próximos SlideShares
Carregando em…5
×

Java Server Pages

431 visualizações

Publicada em

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

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
431
No SlideShare
0
A partir de incorporações
0
Número de incorporações
4
Ações
Compartilhamentos
0
Downloads
15
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Java Server Pages

  1. 1. Introdu¸˜o ca Sintaxe JSP EL e Taglibs Model View Controller Programa¸˜o para Web ca Java Server Pages (JSP) Ivo Calado Instituto Federal de Educa¸˜o, Ciˆncia e Tecnologia de Alagoas ca e 29 de Janeiro de 20131 / 39 Ivo Calado IFALPrograma¸˜o para Web ca
  2. 2. Introdu¸˜o ca Sintaxe JSP EL e Taglibs Model View ControllerRoteiro 1 Introdu¸˜o ca 2 Sintaxe JSP 3 EL e Taglibs 4 Model View Controller2 / 39 Ivo Calado IFALPrograma¸˜o para Web ca
  3. 3. Introdu¸˜o ca Sintaxe JSP EL e Taglibs Model View ControllerObserva¸˜o sobre o conte´do ca u Parte deste material ´ baseada na apostila FJ-21 - Java para e Desenvolvimento Web desenvolvido pela Caelum (www.caelum.com.br)3 / 39 Ivo Calado IFALPrograma¸˜o para Web ca
  4. 4. Introdu¸˜o ca Sintaxe JSP EL e Taglibs Model View ControllerDefini¸˜es coColocando o HTML no seu devido lugar At´ agora, vimos que podemos escrever conte´do dinˆmico e u a atrav´s de Servlets e Por´m, se toda hora criarmos Servlets para fazermos esse e trabalho, teremos muitos problemas na manuten¸˜o das ca nossas p´ginas e tamb´m na legibilidade do nosso c´digo a e o Porque? porque sempre aparece c´digo Java misturado com c´digo HTML. o o Imagine todo um sistema criado com Servlets fazendo a gera¸˜o ca do HTML4 / 39 Ivo Calado IFALPrograma¸˜o para Web ca
  5. 5. Introdu¸˜o ca Sintaxe JSP EL e Taglibs Model View ControllerDefini¸˜es coColocando o HTML no seu devido lugar Em situa¸˜es onde a presen¸a do c´digo HTML ´ superior a co c o e do c´digo Java precisamos de uma solu¸˜o que possibilite o ca inverter os pap´is! e Ao inv´s de inserir c´digo HTML dentro do c´digo Java, e o o inserimos c´digo Java dentro do HTML! o Algo similar ao ASP e PHP Essa tecnologia ´ o JavaServer Pages (JSP). e5 / 39 Ivo Calado IFALPrograma¸˜o para Web ca
  6. 6. Introdu¸˜o ca Sintaxe JSP EL e Taglibs Model View ControllerDefini¸˜es coNosso primeiro exemplo Vejamos o nosso primeiro exemplo em JSP bem-vindo.jsp <html> <body> Bem v i n d o </ body> </ html> Novidade? Fica claro que uma p´gina JSP nada mais ´ que um arquivo a e baseado em HTML, com a extens˜o .jsp a Podemos escrever tamb´m c´digo Java, para que possamos e o adicionar comportamento dinˆmico em nossas p´ginas, como a a declara¸˜o de vari´veis, condicionais (if), loops (for, while) ca a6 / 39 entre outros Ivo Calado IFALPrograma¸˜o para Web ca
  7. 7. Introdu¸˜o ca Sintaxe JSP EL e Taglibs Model View ControllerDefini¸˜es coNosso primeiro exemplo II <body> <%−− Exemplo de c o m e n t ´ r i o−−% a > <% S t r i n g mensagem = " Meu primeiro exemplo din^ mico com a JSP " ; % > <% o u t . p r i n t l n ( mensagem ) ; %><br /> <% S t r i n g d e s e n v o l v i d o = " Desenvolvido por todos !" ; %> <s t r o n g><%=d e s e n v o l v i d o%></ s t r o n g><br /> <% System . o u t . p r i n t l n ( " Tudo foi executado !" ) ; %> </ body> Porque a mensagem “Tudo foi executado!” n˜o foi exibida na a resposta?7 / 39 Ivo Calado IFALPrograma¸˜o para Web ca
  8. 8. Introdu¸˜o ca Sintaxe JSP EL e Taglibs Model View ControllerDefini¸˜es coSobre o c´digo JSP o O c´digo Java ´ adicionado entre os elementos <% e %> o e Existe um objeto out.println que j´ envia a sa´ direta para o a ıda usu´rio. Lembra algum outro objeto? a Chamada a System.out.println ir´ enviar a sa´ para a sa´ a ıda ıda padr˜o do servidor! a8 / 39 Ivo Calado IFALPrograma¸˜o para Web ca
  9. 9. Introdu¸˜o ca Sintaxe JSP EL e Taglibs Model View ControllerDefini¸˜es coObjetos Impl´ ıcitos Em JSP alguns objetos s˜o impl´ a ıcitos request HttpServletRequest response HttpServletResponse out JSPWriter session HttpSession application ServletContext config ServletConfig pageContext PageContext page HttpJspPage9 / 39 Ivo Calado IFALPrograma¸˜o para Web ca
  10. 10. Introdu¸˜o ca Sintaxe JSP EL e Taglibs Model View ControllerDefini¸˜es coC´digo HTML entre o c´digo JSP o o A l´gica do c´digo JSP pode ser intercalada com c´digo o o o HTML No exemplo abaixo, tudo que estiver entre a defini¸˜o do loop ca e o s´ ımbolo de fechamento (}) ser´ repetido! a <body> <% f o r ( i n t i = 0 ; i < 1 0 ; i ++) { %> <!−− F o r a do C o d i g o J a v a −−> ´ Passou a q u i = <%= i % > <br /> <%} % > </ body>10 / 39 Ivo Calado IFALPrograma¸˜o para Web ca
  11. 11. Introdu¸˜o ca Sintaxe JSP EL e Taglibs Model View ControllerDiretivasDiretivas S˜o mensagens ao container JSP, contendo informa¸˜es de a co como o container JSP deve traduzir as p´ginas a A sintaxe b´sica ´ utiliza uma estrutura chave valor a e <%@ d i r e t i v a ( a t r i b u t o=" valor " ) ∗%> Existem trˆs tipos de diretivas: e Diretiva de p´gina: page a Diretiva de inclus˜o: include a Diretiva de taglib: taglib11 / 39 Ivo Calado IFALPrograma¸˜o para Web ca
  12. 12. Introdu¸˜o ca Sintaxe JSP EL e Taglibs Model View ControllerDiretivasA diretiva page A diretiva page possibilita a configura¸˜o de diversas ca propriedades da p´gina como contentType, buffer, import etc a <%@ page a t r i b u t o=" valor "%> S˜o definidos 11 tipos de atributos a language: Nome da linguagem do script (padr˜o “Java”) a info: String a ser recuperada via getServletInfo contentType: Tipo MIME identificando o tipo do conte´do e a u codifica¸˜o ca import: an´logo ao import numa classe Java a session: indica se a p´gina participar´ do controle de sess˜o a a a errorPage: pagina de erro a ser utilizada caso alguma exce¸˜o ca seja lan¸ada c12 / 39 Ivo Calado IFALPrograma¸˜o para Web ca
  13. 13. Introdu¸˜o ca Sintaxe JSP EL e Taglibs Model View ControllerDiretivasA diretiva include Permite a inclus˜o de conte´dos de outros arquivos na p´gina a u a JSP ´´ E util para inclus˜o de cabe¸alhos e rodap´s de p´gina, por a c e a exemplo <%@ i n c l u d e f i l e =" arquivo . jsp "%> A localiza¸˜o do arquivo ´ em rela¸˜o a JSP. Caso seja ca e ca colocado um / no come¸o leva-se em considera¸˜o o contexto c ca do servidor. Mais a frente veremos uma maneira mais robusta de trabalhar com localiza¸˜es de recursos! co13 / 39 Ivo Calado IFALPrograma¸˜o para Web ca
  14. 14. Introdu¸˜o ca Sintaxe JSP EL e Taglibs Model View ControllerDiretivasA diretiva taglib Possibilita extender a funcionalidade do JSP Iremos abordar ele com mais detalhes a frente... :)14 / 39 Ivo Calado IFALPrograma¸˜o para Web ca
  15. 15. Introdu¸˜o ca Sintaxe JSP EL e Taglibs Model View ControllerSintaxeDefini¸˜o de c´digo ca o Existem trˆs formas de definir c´digo em uma p´gina JSP e o a Declara¸˜es: Permitem a defini¸˜o de vari´veis e m´todos co ca a e Express˜es: Converte o resultado do c´digo em uma string a o o ser anexada no c´digo JSP o Scriptlets: Permitem a escrita de c´digo fora de qualquer o m´todo a ser executado (an´logo a um c´digo JavaScript) e a o15 / 39 Ivo Calado IFALPrograma¸˜o para Web ca
  16. 16. Introdu¸˜o ca Sintaxe JSP EL e Taglibs Model View ControllerSintaxeExemplo Scriptlets <% w h i l e ( i−− != 0 ) { o u t . p r i n t l n ( " Texto " ) ; }%> Express˜es o Hoje s ˜ o < a %= getSystemTime ( ) %><br /> Declara¸˜es co <%! i n t i = 10; S t r i n g getSystemTime ( ) { r e t u r n C a l e n d a r . g e t I n s t a n c e ( ) . getTime ( ) . t o S t r i n g ( ) ; }16 / 39 %> Ivo Calado IFALPrograma¸˜o para Web ca
  17. 17. Introdu¸˜o ca Sintaxe JSP EL e Taglibs Model View ControllerSintaxeExercicio I: Criando uma lista de contatos Crie uma classe chamada Contato, dentro de algum pacote espec´ıficos Adicione 3 atributos: Nome, Endere¸o e Idade c Crie uma classe ContatosDao com um m´todolo que retorne e uma lista de Contatos (pelo menos 5 elementos) Com base no exemplo anterior, crie uma p´gina JSP que a contenha uma tabela e cada coluna da tabela represente um contato Fa¸a uso do Ctrl + espa¸o no Eclipse para importar o que c c for necess´rio e veja como ´ feito o import a e17 / 39 Ivo Calado IFALPrograma¸˜o para Web ca
  18. 18. Introdu¸˜o ca Sintaxe JSP EL e Taglibs Model View ControllerEL: Expression LanguageAt´ agora conseguimos desacoplar o Java do HTML? e O objetivo inicial do JSP era redudir o acoplamento entre o c´digo Java e o HTML o Pelo que vimos at´ agora isso foi obtido? Porque? e N˜o! O c´digo Java continua sendo misturado com HTML e a o um designer Web precisa entender l´gica de programa¸˜o o ca E existe hoje em dia no mercado muitas aplica¸˜es feitas co inteiramente utilizando scriptlets e escrevendo c´digo Java, o PHP e outras no meio dos HTMLs18 / 39 Ivo Calado IFALPrograma¸˜o para Web ca
  19. 19. Introdu¸˜o ca Sintaxe JSP EL e Taglibs Model View ControllerEL: Expression LanguageEL: Expression Language Para remover um pouco do c´digo Java que fica na p´gina o a JSP, a Sun desenvolveu uma linguagem chamada Expression Language que ´ interpretada pelo servlet container e O acesso a express˜es ´ realizada a partir da estrutura ${expr} o e Vejamos como criar uma p´gina que receba um parˆmetro e a a exiba-o na tela19 / 39 Ivo Calado IFALPrograma¸˜o para Web ca
  20. 20. Introdu¸˜o ca Sintaxe JSP EL e Taglibs Model View ControllerEL: Expression LanguageExemplo EL <body> Testando s e u s parametros : <br /> A i d a d e ´ $ { param . i d a d e } . e </ body> param ´ um objeto nativo, assim como out que contem um e mapa com parˆmetros recebidos na requisi¸˜o a ca20 / 39 Ivo Calado IFALPrograma¸˜o para Web ca
  21. 21. Introdu¸˜o ca Sintaxe JSP EL e Taglibs Model View ControllerEL: Expression LanguageExemplo: avalia¸˜o de express˜es ca o <body> <h2>O p e r a d o r e s de Compara¸ ˜ o</h2> ca 4 > ’ 3 ’ => $ {4 > ’ 3 ’ }<br /> ’ 4 ’ > 3 => $ { ’ 4 ’ > 3}<br /> ’ 4 ’ > ’3’=> $ { ’ 4 ’ > ’ 3 ’ } <br /> 4 >= 3 => $ {4 >= 3}<br /> 4 <= 3 = > $ {4 < 3}< br /> 4 == ’ 4 ’ => $ {4 == 4}<br /> </ body>21 / 39 Ivo Calado IFALPrograma¸˜o para Web ca
  22. 22. Introdu¸˜o ca Sintaxe JSP EL e Taglibs Model View ControllerTaglibsMotiva¸˜o ca Come¸amos a melhorar nossos problemas com rela¸˜o ` c ca a mistura de c´digo Java com HTML atrav´s da Expression o e Language No entanto, ela sozinha n˜o pode nos ajudar muito, pois ela a n˜o nos permite, por exemplo, instanciar objetos, fazer a verifica¸˜es condicionais (if else), itera¸˜es como em um for e co co assim por diante Sendo assim, precisamos de um mecanismo baseado em tags para representar nosso l´gica de neg´cio! o o Para isso, fazemos uso das Taglibs22 / 39 Ivo Calado IFALPrograma¸˜o para Web ca
  23. 23. Introdu¸˜o ca Sintaxe JSP EL e Taglibs Model View ControllerTaglibsJavaBeans: acesso aos atributos Antes de entrarmos diretamente em Taglibs precisamos aprender sobre Javabeans. Um Bean ´ um tipo de objeto e Java, com construtor default e os respectivos getters e setters Instˆnci´-los na nossa p´gina JSP n˜o ´ complicado. Basta a a a a e utilizarmos a tag correspondente para essa fun¸˜o, que no ca nosso caso ´ a < jsp : useBean > e <jsp:useBean id=”contato”class=”br.edu.ifal.pweb.classes.Contato”/> Agora podemos fazer uso das express˜es EL para acessar o valor de o contato. Exemplo: ${contato.nome}23 / 39 Ivo Calado IFALPrograma¸˜o para Web ca
  24. 24. Introdu¸˜o ca Sintaxe JSP EL e Taglibs Model View ControllerTaglibsJavaBeans No nosso exemplo, os atributos de Contato foram definidos como privados mas estamos conseguindo acess´-los. Por que a isso? Na verdade n˜o estamos acessando o atributo privado. a Quando fazemos contato.nome o container implicitamente chama o m´todo getNome e24 / 39 Ivo Calado IFALPrograma¸˜o para Web ca
  25. 25. Introdu¸˜o ca Sintaxe JSP EL e Taglibs Model View ControllerTaglibsJavaBeans: Modificando propriedades Para modificar uma propriedade em um bean, fazemos uso da propriedade jsp:setProperty <body> <%c o n t a t o . setNome ( " teste " ) ; %> < j s p : s e t P r o p e r t y p r o p e r t y=" endereco " v a l u e=" Rua das casas " name=" contato " /> Nome = $ { c o n t a t o . nome} <br /> Endereco = ${ cont ato . endereco } ¸ </ body>25 / 39 Ivo Calado IFALPrograma¸˜o para Web ca
  26. 26. Introdu¸˜o ca Sintaxe JSP EL e Taglibs Model View ControllerJSTLJavaServer Pages Standard Tag Library JSTL ´ a API que encapsulou em tags simples toda a e funcionalidade que diversas p´ginas Web precisam a Exemplos de funcionalidades incluem: controle de la¸os (fors), c controle de fluxo do tipo if else, manipula¸˜o de dados XML e ca a internacionaliza¸˜o de sua aplica¸˜o ca ca Existem ainda outras partes da JSTL, por exemplo aquela que acessa banco de dados e permite escrever c´digos SQL na o nossa p´gina. Mas se o designer n˜o compreende Java o que a a diremos de SQL? O uso de tal parte da JSTL ´ desencorajado. e26 / 39 Ivo Calado IFALPrograma¸˜o para Web ca
  27. 27. Introdu¸˜o ca Sintaxe JSP EL e Taglibs Model View ControllerJSTLInstala¸˜o do JSTL ca Para instalar a implementa¸˜o mais famosa da JSTL basta ca baixar a mesma no site https://jstl.dev.java.net/ Adicionar as libs no diret´rios libs do projeto o Para removermosas as notifica¸˜es de erros no Eclipse, co teremos de adicionar as libs no build path Adicione a referˆncia ao conjunto de taglibs do JSTL e (equivalente a um import) atrav´s da seguinte linha e <%@ t a g l i b u r i=" http :// java . sun . com / jsp / jstl / core " p r e f i x="c" % >27 / 39 Ivo Calado IFALPrograma¸˜o para Web ca
  28. 28. Introdu¸˜o ca Sintaxe JSP EL e Taglibs Model View ControllerEstruturas de controleforEach A JSTL core disponibiliza uma tag chamada c:forEach capaz de iterar por uma cole¸˜o ca No c:forEach, precisamos indicar a cole¸˜o na qual vamos ca iterar, atrav´s do atributo items e tamb´m como chamar´ o e e a objeto que ser´ atribu´ para cada itera¸˜o no atributo var. a ıdo ca <c : f o r E a c h v a r=" ct " i t e m s="${ contato . lista }" v a r S t a t u s= " id "> <t r b g c o l o r="#${ id . count % 2 == 0 ? ’aaee88 ’ : ’ffffff ’ }"> <td>$ { i d . c o u n t }</ td> <td>$ { c t . nome}</ td> <td>$ { c t . i d a d e }</ td> </ t r> </ c : f o r E a c h>28 / 39 Ivo Calado IFALPrograma¸˜o para Web ca
  29. 29. Introdu¸˜o ca Sintaxe JSP EL e Taglibs Model View ControllerEstruturas de controleAtributos var: vari´vel a ser utilizada na itera¸˜o a ca items: fonte dos dados varStatus: posi¸˜o corrente ca29 / 39 Ivo Calado IFALPrograma¸˜o para Web ca
  30. 30. Introdu¸˜o ca Sintaxe JSP EL e Taglibs Model View ControllerEstruturas de controleExerc´ ıcio Altere o exemplo para que seja a coluna e n˜o a linha da tabela a apresentada30 / 39 Ivo Calado IFALPrograma¸˜o para Web ca
  31. 31. Introdu¸˜o ca Sintaxe JSP EL e Taglibs Model View ControllerEstruturas de controleCriando Ifs E se quisermos alterar a tabela para que seja exibida uma obserca¸˜o caso o contato tenha menos que 18 anos ca Fazermos uso da Tag If <c : f o r E a c h v a r=" ct " i t e m s="${ contato . lista }" v a r S t a t u s= " id "> <t r b g c o l o r="#${ id . count % 2 == 0 ? ’aaee88 ’ : ’ffffff ’ }"> <td>$ { i d . c o u n t }</ td> <td>$ { c t . nome}</ td> <td>$ { c t . i d a d e }</ td> <td><c : i f t e s t="${ ct . idade < 18 }"> Menor de I d a d e</ c : i f > </ td> </ t r> </ c : f o r E a c h>31 / 39 Ivo Calado IFALPrograma¸˜o para Web ca
  32. 32. Introdu¸˜o ca Sintaxe JSP EL e Taglibs Model View ControllerEstruturas de controleSemˆntica dos parˆmetros a a test: Recebe como parˆmetro uma express˜o a ser avaliada a a como true ou false Al´m de testes diretos, operadores de EL podem ser utilizados e <c : i f t e s t="${ not empty variavel }"> </ c : i f >32 / 39 Ivo Calado IFALPrograma¸˜o para Web ca
  33. 33. Introdu¸˜o ca Sintaxe JSP EL e Taglibs Model View ControllerEstruturas de controleSimulando o else O JSTL n˜o possui uma tag else para complementar o if a Por´m podemos utilizar a estrutura choose para este prop´sito e o <c : c h o o s e> <c : when t e s t="${ ct . idade < 18} "> Menor de i d a d e </ c : when> <c : o t h e r w i s e>Maior de I d a d e</ c : o t h e r w i s e> </ c : c h o o s e>33 / 39 Ivo Calado IFALPrograma¸˜o para Web ca
  34. 34. Introdu¸˜o ca Sintaxe JSP EL e Taglibs Model View ControllerEstruturas de controleExercicio para casa Pesquisar sobre os demais operadores do EL34 / 39 Ivo Calado IFALPrograma¸˜o para Web ca
  35. 35. Introdu¸˜o ca Sintaxe JSP EL e Taglibs Model View ControllerEstruturas de controleExercicio Adicione um atributo homepage ` classe Contato. a No m´tododo getLista de ContatoDao adicione para alguns e usu´rios uma p´gina de usu´rio a a a Altere o exemplo de listagem usando JSTL, adicionando uma nova coluna Caso o usu´rio possua a homepage definida exiba na coluna a correspondente como um link, caso contr´rio exiba a a mensagem “N˜o dispon´ a ıvel”35 / 39 Ivo Calado IFALPrograma¸˜o para Web ca
  36. 36. Introdu¸˜o ca Sintaxe JSP EL e Taglibs Model View ControllerEstruturas de controleImportando p´ginas a Um requisito comum que temos nas aplica¸˜esWeb hoje em co dia ´ colocar cabe¸alhos e rodap´ nas p´ginas do nosso e c e a sistema Esses cabe¸alhos e rodap´s podem ter informa¸˜es da c e co empresa, do sistema e assim por diante O problema ´ que, na grande maioria das vezes, todas as e p´ginas da nossa aplica¸˜o precisam ter esse mesmo a ca cabe¸alho e rodap´s c e Para isso, podemos fazer uso de inclus˜es de arquivos para o possibilitar a inclus˜o de outras p´ginas j´ existentes a a a <c : i m p o r t u r l=" cabecalho . jsp " />36 / 39 Ivo Calado IFALPrograma¸˜o para Web ca
  37. 37. Introdu¸˜o ca Sintaxe JSP EL e Taglibs Model View ControllerEstruturas de controleOutras tags JSTL existentes formatDate: possibilita formatar objetos do tipo Data sob os mais diversos aspectos curl: permite a localiza¸˜o simplificada de recursos dentro do ca projeto catch: bloco do tipo try/catch c:forTokens: for em tokens (ex: “a,b,c” separados por v´ ırgula) c:out: sa´ ıda etc37 / 39 Ivo Calado IFALPrograma¸˜o para Web ca
  38. 38. Introdu¸˜o ca Sintaxe JSP EL e Taglibs Model View ControllerIntrodu¸˜o caServlet ou JSP? Ao se trabalhar com Servlets e JSPs temos um tradeoff Se utilizarmos apenas Servlets, o que acontece quando precisamos mudar o design da p´gina? O designer n˜o vai a a saber Java para editar a Servlet, recompilar e coloc´-la no a servidor Imagine usar apenas JSP. Ficar´ ıamos com muito scriptlet, que ´ muito dif´ de dar manuten¸˜o. O JSP foi feito apenas e ıcil ca para apresentar o resultado, e ele n˜o deveria fazer acessos a a banco de dados e nem fazer a instancia¸˜o de objetos. Isso ca deveria estar em c´digo Java, na Servlet o38 / 39 Ivo Calado IFALPrograma¸˜o para Web ca
  39. 39. Introdu¸˜o ca Sintaxe JSP EL e Taglibs Model View ControllerIntrodu¸˜o caServlet ou JSP? Ao se trabalhar com Servlets e JSPs temos um tradeoff Se utilizarmos apenas Servlets, o que acontece quando precisamos mudar o design da p´gina? O designer n˜o vai a a saber Java para editar a Servlet, recompilar e coloc´-la no a servidor Imagine usar apenas JSP. Ficar´ ıamos com muito scriptlet, que ´ muito dif´ de dar manuten¸˜o. O JSP foi feito apenas e ıcil ca para apresentar o resultado, e ele n˜o deveria fazer acessos a a banco de dados e nem fazer a instancia¸˜o de objetos. Isso ca deveria estar em c´digo Java, na Servlet o Uma ideia mais interessante ´ usar o que ´ bom de cada um dos e e dois!!38 / 39 Ivo Calado IFALPrograma¸˜o para Web ca
  40. 40. Introdu¸˜o ca Sintaxe JSP EL e Taglibs Model View ControllerIntrodu¸˜o caObjetivo O ideal ent˜o ´ que a Servlet fa¸a o trabalho ´rduo, a tal da a e c a l´gica de neg´cio o o E o JSP apenas apresente visualmente os resultados gerados pela Servlet.39 / 39 Ivo Calado IFALPrograma¸˜o para Web ca

×