Escolar Documentos
Profissional Documentos
Cultura Documentos
Slide 1
Apresentao da Agenda
Introduo Arquitetura JSF Principais componentes JSF Configurao Integrao JSF e JSP Ferramentas Links Perguntas e Respostas
Slide 2
Agenda
Introduo Arquitetura JSF Principais componentes JSF Configurao Integrao JSF e JSP Ferramentas Links Perguntas e Respostas
Slide 3
Introduo
Motivao
MVC tornou-se um padro de mercado; As interfaces grficas exigidas so muito complexas para serem desenvolvidas somente com HTML exigindo muito JavaScript; Muitos componentes de UI sendo desenvolvidos com Custom Tags ou JavaScript sem padronizao; Baixa produtividade no desenvolvimento de aplicaes Web;
OpenSource Education Globalcode Slide 4
Introduo
O que JavaServer Faces (JSF)?
Paradigma de programao visual de User-interfaces aplicado web um framework que permite a criao de aplicaes Web com semntica de Swing implementando MVC; Toolability = Ferramentabilidade ; Uma especificao J2EE JSR 127;
Slide 5
Introduo
J2EE Web Container J2EE EJB Container
JSF e J2EE
JavaServer Faces
Slide 6
Introduo
Slide 7
EJB
Slide 8
EJB
Slide 9
Agenda
Introduo Arquitetura JSF Principais componentes JSF Configurao Integrao JSF e JSP Ferramentas Links Perguntas e Respostas
Slide 10
Arquitetura JSF
Arquitetura Client-Server baseada em HTTP; Dificuldade em prover o mesmo dinamismo de uma aplicao desktop; Todo o processamento Java acontece no servidor;
Slide 11
Arquitetura Swing
Listener Validao Converso de dados Integrao com a camada Model Lgica de negcios, etc Java Chamada a mtodos
Slide 12
Arquitetura JSF
J2EE Web Container Java Servlet Validao Converso de dados Integrao com a camada Model Lgica de negcios, etc
Criao da rvore de componentes. Atualiza rvore Se a pgina j foide 2. Apply Request Values componentes com visualizada na mesma Executa todasdados so 3. Process Validators valores da session os request. validaes associadas Execuo quaisquer Dispara do recuperados. ActionListener padro, Cada UI Component 4. Update Model Values aos eventos gerados pela componentes de atualiza o seu backing UIgeralmente com atualizao 5. Invoke Application model execuo de Gerao da Response componentes de 6. Render Response com a rvore de negcio componentes
1. Restore View
Slide 14
Agenda
Introduo Arquitetura JSF Principais componentes JSF Configurao Integrao JSF e JSP Ferramentas Links Perguntas e Respostas
Slide 15
Request
Managed Bean
Application
Managed Bean
Slide 16
Bibliotecas de Tags Managed Beans Componentes de User-interface (UI) Validadores Conversores Eventos Listeners Renderizadores FacesController
Slide 17
Bibliotecas de Tags
Slide 18
Bibliotecas de Tags
A navegao em pginas HTML pode acontecer das seguintes formas:
Um link : <A HREF=catalogo.jsp> texto do link </A> Um formulrio <FORM action=catalogo.jsp>
Slide 19
Tags de navegao
1. OutputLink: Utilizamos OutputLink quando nenhuma ao deve ser realizada quando o link for clicado, ou seja, somente o redirecionamento nos interessa. 2. CommandLink e CommandButton: so utilizados para gerar links e submeter formulrios, e podem ser configurados para executar uma determinada ao antes de enviar a Request para a pgina configurada. 3. CommandLink: utiliza JavaScript para submisso da Request.
Slide 20
Tags de navegao
Slide 21
Slide 22
Slide 23
Managed Beans
Um Managed Bean um JavaBean gerenciado pelo framework JSF, ou seja, ele instanciado, e colocado no escopo de acordo com as configuraes encontradas no faces-config.xml Um ManagedBean tambm chamado de backing bean, pois contm os dados e os mtodos que sero executados quando algum dos componentes da pgina JSF tiver que executar uma ao.
Slide 24
Managed Beans
Chamamos de binding o vinculo entre um componente da pgina JSF e o seu backing model / managed bean.
Slide 25
Managed Beans
Slide 26
Managed Beans
Utilizamos Taglibs e EL (Expression Language) para associar (fazer o binding) de um componente de UI com um ManagedBean; <h:outputText value="#{clienteBean.nome}"/>
A String clienteBean est associada a classe ClienteBean no facesconfig.xml.
Slide 27
Managed Beans
Slide 28
Slide 29
Componentes de User-Interface
Tecnicamente:
Todos os componentes de UI so subclasses da classe abstrata UIComponent; A classe UIComponentBase j implementa os mtodos necessrios de UIComponent podendo ser estendida diretamente;
Slide 30
Componentes de User-Interface
Custom Tag renderiza um UICommand em forma de boto HTML Render Kit ou hyperlink
Slide 31
Componentes de User-Interface
Slide 32
Componentes de User-Interface
Componentes de User-Interface
Standard UI Components
UICommand (botes, hyperlinks, menus) UIForm, UIInput, UIParameter, UIGraphic (imagens) UIMessage, UIMessages (msgs de erro) UIOutput, UIPanel
Slide 34
Componentes de User-Interface
Standard UI Components
UISelectBoolean (check box); UISelectItems, UISelectItem, UISelectMany UISelectOne (combo box, listas, conjunto de check boxes) UIData, UIColumn (tabelas, listas e rvores)
Slide 35
Bibliotecas de Tags Managed Beans Componentes de User-interface (UI) Validadores Conversores Eventos Listeners Renderizadores FacesController
Slide 36
Validadores
Slide 37
Validadores
Slide 38
Validadores
Slide 39
Bibliotecas de Tags Managed Beans Componentes de User-interface (UI) Validadores Conversores Eventos Listeners Renderizadores FacesController
Slide 40
Conversores
Problemas comum:
Dados digitados pelo usurio so Strings; Dados apresentados podem estar formatados ou ter representao grfica, como um calendrio; necessrio converter estas Strings para Date, long, char, int, Cliente ou qualquer outro tipo e vice-versa.
Slide 41
Conversores
Todos os componentes de UI derivados de UIOutput podem ter conversores associados; Um conversor deve implementar a interface javax.faces.convert.Converter;
Slide 42
Conversores
Slide 43
Bibliotecas de Tags Managed Beans Componentes de User-interface (UI) Validadores Conversores Eventos Listeners Renderizadores FacesController
Slide 44
Eventos
Modelo de eventos muito parecido com AWT e Swing Os Eventos so responsveis pela propagao das aes sobre a interface com o usurio; Cada componente de UI pode disparar quantos eventos forem necessrios; Um evento deve implementar a interface javax.faces.event.FacesEvent
Slide 45
Eventos
A especificao do JSF padroniza duas interfaces de eventos: ActionEvent (geradas atravs da interao com UICommand) ValueChangeEvent (geradas atravs da interao com UIInput) A especificao JavaBeans recomenda que todas as classe que representam eventos sejam ps-fixadas com a palavra Event.
Slide 46
Bibliotecas de Tags Managed Beans Componentes de User-interface (UI) Validadores Conversores Eventos Listeners Renderizadores FacesController
Slide 47
Listeners
Cada tipo de evento tem uma interface listener correspondente; Toda interface listener deve estender a interface javax.faces.event.FacesListener ; A especificao JavaBeans recomenda que toda a classe que representa um listener tenha seu nome baseado no evento que est associada e seja ps-fixada com Listener ;
Slide 48
Listeners
Slide 49
Listeners
Cada componente de UI pode ter quantos listeners forem necessrios; Um Componente de UI tambm pode ser um listener;
Slide 50
Listeners
Os componentes de UI tem mtodos para registrar e remover listeners. Exemplos: addActionListener removeActionListener O registro de listeners tambm pode ser feito atravs das custom tags encontradas na Standard JSF HTML tag library
Slide 51
Bibliotecas de Tags Managed Beans Componentes de User-interface (UI) Validadores Conversores Eventos Listeners Renderizadores FacesController
Slide 52
Renderizadores
Custom Tag renderiza um UICommand em forma de boto HTML Render Kit ou hyperlink
Slide 53
Renderizadores
A renderizao do componente pode ser feita pelo prprio componente ou delegada para um Renderizador. A renderizao atravs de um Renderizador prov maior flexibilidade e reusabilidade para aplicao.
Slide 54
Renderizadores
A aparncia fica separada da funcionalidade. O componente prov a funcionalidade e o renderizador a aparncia; Utilizamos estes componentes de UI atravs de custom tags definidas no HTML RenderKit; O HTML RenderKit deve obrigatoriamente ser oferecido por todas as implementaes de JSF;
Slide 55
Renderizadores
Um RenderKit uma coleo de renderizadores (javax.faces.render.Renderer) Um RenderKit deve implementar a interface javax.faces.render.RenderKit
Slide 56
Renderizadores
Slide 57
Bibliotecas de Tags Managed Beans Componentes de User-interface (UI) Validadores Conversores Eventos Listeners Renderizadores FacesController
Slide 58
FacesController
Um dos principais componentes de controle da aplicao; Implementao de FrontController conveniente para gerenciamento de segurana e acesso a aplicaes Web; Responsvel por grande parte do ciclo de vida de uma aplicao JSF, pois inicia vrios processos;
Slide 59
Agenda
Introduo Arquitetura JSF Principais componentes JSF Configurao Integrao JSF e JSP Ferramentas Links Perguntas e Respostas
Slide 60
Configurao
JARs necessrios:
jsf-api.jar jsf-ri.jar jstl.jar standard.jar commons-beansutils.jar commons-digester.jar commons-collections.jar commons-logging.jar
Slide 61
Configurao
Slide 62
Configurao
faces-config.xml
Neste arquivo so feitas todas as configuraes da aplicao JSF, como por exemplo: Navegao Managed Beans Validators
Slide 63
Configurao
Slide 64
Agenda
Introduo Arquitetura JSF Principais componentes JSF Configurao Integrao JSF e JSP Ferramentas Links Perguntas e Respostas
Slide 65
JSP no a nica forma de construir interfaces para JSF; A integrao feita atravs de TagLibs; As TagLibs ligam os componentes server-side aos clientside ( tipicamente HTML)
Slide 66
Slide 67
Configuraes necessrias: <%@ taglib uri=http://java.sun.com/jsf/html prefix=h %> <%@ taglib uri=http://java.sun.com/jsf/core prefix=h %>
Slide 68
Agenda
Introduo Arquitetura JSF Principais componentes JSF Configurao Integrao JSF e JSP Ferramentas Links Perguntas e Respostas
Slide 69
Ferramentas
Java Studio Creator JDeveloper JBuilder MyEclipseIDE Red Hat Developer Studio WSAD Eclipse 3.3 NetBeans Visual Web Pack
Slide 70
Agenda
Introduo Arquitetura JSF Principais componentes JSF Configurao Integrao JSF e JSP Ferramentas Links Perguntas e Respostas
Slide 71
Mais informaes
http://java.sun.com/developer/technicalArticles/J2EE/intro_ee5
Slide 72
Agenda
Introduo Arquitetura JSF Principais componentes JSF Configurao Integrao JSF e JSP Ferramentas Links Como usar AJAX AJAX e JSF Perguntas e Respostas
Slide 73
Perguntas e Respostas
Slide 74