Beruflich Dokumente
Kultur Dokumente
O que JSF? Ciclo de vida do JSF Componentes JSF Entendendo o MVC Converso e Validao Internacionalizao Ajax Componentes customizados Facelets Templates
Desenvolver um sistema simples com JSF, JPA e Spring Bibliotecas de componente Frameworks de desenvolvimento que utilizam JSF Dicas e boas prticas
Oct 9, 2012
Requisitos Desejveis
Programao em Java Noes de HTML e CSS Noes de JSP e Servlets Orientao a objetos Banco de dados Interesse em aprender. =D
Oct 9, 2012
Links teis
JavaServer Faces Technology http://www.oracle.com/technetwork/java/javaee/javaserverfaces-139869.html Grupo de usurios JSF - http://groups.google.com/group/javasf Blog Rafael Ponte - http://www.rponte.com.br
Artigo O que todo bom desenvolvedor JSF deveria saber http://www.rponte.com.br/2009/01/19/o-que-todo-bom-desenvolvedor-jsf-deveria-saber/ Artigo Os 10 maus hbitos dos desenvolvedores JSF http://www.rponte.com.br/2008/11/24/os-10-maus-habitos-dos-desenvolvedores-jsf/ Artigo Repitam comigo: Redirect no forward http://www.rponte.com.br/2008/07/12/repitam-comigo-redirect-nao-e-forward/
www.google.com =P http://blog.vmendes.com.br ; )
Oct 9, 2012
O que JSF?
JavaServer Faces uma especificao do framework MVC Java padro para construir interfaces de usurios em aplicaes WEB. JavaServer Faces define um framework para o desenvolvimento simplificado de interfaces grficas baseadas em componentes.
[12]
Oct 9, 2012 Desenvolvimento WEB com JavaServer Faces 5
Tecnologia definida atravs do JCP (Java Community Process) Baseado em componentes (Semelhante ao desenvolvimento desktop) Possui um conjunto de componentes de interface com usurio padro extensvel, ou seja, novos componentes podem ser adicionados
Dirigido a eventos Validadores e conversores de dados Internacionalizao Suporte a AJAX (Nativo a partir do JSF 2.0)
[3] [9]
Oct 9, 2012
Padro de Mercado Presente nas especificaes JEE 5 e JEE 6. Suporte de Big Players
Extensvel e Reutilizvel Grande atividade da comunidade em fruns, listas de discusso, blogs, portais, revistas, livros etc Integrao com diversos frameworks:
Sun, Apache, IBM, Oracle, BEA Systems, Borland Fcil de usar e produtivo Alta abstrao para desenvolvimento WEB Baixa curva de aprendizagem Converters, Validators, Listeners, Componentes Prontos
Spring, Hibernate, EJB3, JPA, JBoss Seam, JAAS, Struts, Shale, Tiles,GWT, Portlets e muitos outros Testes Unitrios (JSFUnit) Templates
[3]
7
Oct 9, 2012
Histria do JSF
Surgiu da necessidade de um framework orientado a interface de usurio robusto para aplicaes WEB, tal qual o Swing para aplicaes desktop. Criado atravs do Java Community Process (JCP) por um grupo de lderes em tecnologia, incluindo a Sun Microsystems, Oracle, Borland, BEA, IBM e, atravs de um grupo de peritos Java e Web bem conhecido na indstria. O processo de especificao iniciou em 2001.*
Histria do JSF
Release inicial da especificao do JSF. No fazia parte de nenhuma especificao JavaEE/J2EE Configuraes baseadas fortemente em XML JSF 1.1 (2004-05-27) (DEPRECATED)* Esta release corrigiu bugs da verso anterior. No houve mudanas na especificao, nem no renderkit HTML. JSF 1.2 (2006-05-11) JSR 252 Muitas melhorias do core e APIs. Passou a fazer parte do Java EE (Java EE 5).
[1] [2] [8]
Desenvolvimento WEB com JavaServer Faces 9
Oct 9, 2012
Histria do JSF
Nova verso com melhoria na facilidade de uso, funcionalidade e desempenho. Passou a adotar anotaes (Annotations) para suas configuraes. Faz parte do Java EE 6. JSF 2.1 (2010-10-22) Verso atual. Segunda verso de manuteno da 2.0. Apenas um pequeno conjunto de mudanas na especificao.
[1] [2] [8]
Oct 9, 2012
10
Histria do JSF
http://javaserverfaces-spec-public.java.net/ Novidades
No ser necessria Classe para manipulao de tags customizadas (tag handler); Ajustes para bibliotecas Facelets (abreviando atributos e tags); Suporte para OSGi (Open Services Gateway Initiative); Suporte para CDI em toda API;
Histria do JSF
Novidades (Cont.)
Integrao com Portlet: Bookmarkability; Endereamento via Ajax; Implementao de component server; Novidades:
Oct 9, 2012
Implementaes JSF
O JSF definido pelo JCP atravs de JSRs (Uma para cada verso) Uma JSR (Java Specification Request) resulta em documentaes, interfaces e algumas classes que especificam como deve funcionar um novo produto. Ou seja, JSF apenas uma especificao e cada empresa pode implementar um produto final compatvel com o proposto pela especificao.
[2][4]
Oct 9, 2012 Desenvolvimento WEB com JavaServer Faces 13
Implementaes JSF
Mojarra
a implementao de referncia do JSF (JSF RI) Implementao da SUN (GlassFish) a mais utilizada hoje em dia
Myfaces
ADF Faces (Oracle) A implementao da BEA (j vem embutido WebLogic) A implementao da IBM (j vem embutido WebSphere) Backbase NetAdvantage
Desenvolvimento WEB com JavaServer Faces 14
[2][4]
Oct 9, 2012
Implementaes JSF
[2][4]
Oct 9, 2012 Desenvolvimento WEB com JavaServer Faces 15
Plugins
Jboss Tools
Oct 9, 2012
16
Oct 9, 2012
17
Oct 9, 2012
18
Oct 9, 2012
19
Oct 9, 2012
20
Clicar com o boto direito no projeto e ir em Properties > Project Facets e marcar JavaServer Faces, selecionando a verso 1.2. Permite o uso do auto-complete nas telas.
Oct 9, 2012
21
Oct 9, 2012
22
Oct 9, 2012
23
Criar tela (index.jsp) dentro da pasta WebContent que exibir a mensagem do nosso ManagedBean
Oct 9, 2012
24
Oct 9, 2012
25
File > New > Project... > Dynamic Web Project jsf-api-2.1.x.jar jsf-impl-2.1.x.jar jstl-1.2.jar
Oct 9, 2012
26
Oct 9, 2012
27
Clicar com o boto direito no projeto e ir em Properties > Project Facets e marcar JavaServer Faces, selecionando a verso 2.1. Permite o uso do auto-complete nas telas.
Oct 9, 2012
28
Oct 9, 2012
29
Criar tela (index.xhtml) dentro da pasta WebContent que exibir a mensagem do nosso ManagedBean
Oct 9, 2012
30
Oct 9, 2012
31
o descritor da aplicao web. Arquivo de configurao padro de projetos Java WEB. nele onde declaramos e mapeamos o uso do Faces Servlet. (O servlet que faz o JSF funcionar) Quando o JSF 2 roda em um Containner Servlet 3.0 (Ex. Sun Glassfish v3 ou Apache Tomcat 7) o web.xml opcional, e o Faces Servlet Controller mapeado automaticamente para os padres de URL mais populares: /faces/*, *.jsf, and *.faces
[8][10]
Oct 9, 2012 Desenvolvimento WEB com JavaServer Faces 32
javax.faces.STATE_SAVING_METHOD Determina onde ser salvo o estado da rvore de componentes da view. Os valores permitid so: server e client javax.faces.CONFIG_FILES Utilizado para determinar arquivos de configurao do JSF, com nomes diferentes do padro (faces-config.xml). Deve-se informar os nomes dos arquivos separads por vrgula. javax.faces.PROJECT_STAGE Serve para que em tempo de execuo informaes e pginas adicionais de ajuda sejam exibidas. Os valores so: Development, Production, SystemTest, and UnitTest.
[8][10]
Oct 9, 2012
33
Permite a configurao de todos os elementos de uma aplicao JSF: Manageds Beans, Regras de Navegao, Validadores, Conversores, Componentes, Phase Listeners, etc. Opcional a partir do JSF 2, pois a maioria das configurao podem ser substitudas por anotaes.
[8][10]
Oct 9, 2012 Desenvolvimento WEB com JavaServer Faces 34
Managed Bean
Objetos Java que armazenam dados da aplicao e no implementam ou extendem nenhuma interface ou clase de algum framework especfico.
Envia objetos de negcio para a camada de apresentao, que sofrero alteraes em seus atributos durante uma requisio, assim como o mtodos podem ser chamado a partir de um command. Qualquer classe Java com construtor pblico sem argumento, que siga a conveno de nomes JavaBeans para suas propriedades
[8][3]
Oct 9, 2012
35
Managed Bean
Objetos do tipo java.util.List ou java.util.Map tambm podem ser registrados como managed beans acessado pela camada de viso atravs da expression language (EL) do JSF. Possuem um escopo: perodo de tempo em que uma instncia de um managed bean estar diponvel para outras partes do sistema.
[8][3]
Oct 9, 2012 Desenvolvimento WEB com JavaServer Faces 36
Pginas JSF
Permite o uso JSTL e taglibs customizadas baseadas em pginas JSP Inicialmente criado como uma extenso para JSF, sendo incorporado a partir da verso 2. Desenhado com JSF em mente Prover a facilidade de criar templates Fora uma separao limpa do MVC, porque desabiita a incluso de cdigo Java.
[8][11]
Oct 9, 2012
38
Value Binding
Liga o valor de um componente a um Managed Bean Essa ligao feita atravs de JSF Expression Language (EL) Pode ser utilizado para executar mtodos Ex.:
<h:outputText value="#{PessoaBean.nome}"/>
[][]
Oct 9, 2012 Desenvolvimento WEB com JavaServer Faces 39
application: The ServletContext or PortletContext, depending on whether an application is running in a servlet or portlet context, respectively. applicationScope: A map for storing application-scoped data component (JSF 2): The UIComponent instance being currently processed cc (JSF 2): The top-level composite component currently being processed. cookie: A map view of values in the HTTP Set-Cookie header facesContext: The actual FacesContext instance flash (JSF 2): A map whose values are guaranteed to be present only on the next request. header: A map view of all the HTTP headers for this request. headerValues: A map view of all the HTTP headers for this request
[8]
Desenvolvimento WEB com JavaServer Faces 40
Oct 9, 2012
param Map A map view of all the query parameters for this request. paramValues: Map A map view of all the HTTP headers for this request. request: The ServletRequest or PortletRequest, depending on or whether the code is executing in a servlet or portlet environment, respectively. requestScope: A map for storing request-scoped data. resource: Allow a resource reference to be rendered to the page. session: The HttpSession or PortletSession, depending on or whether code is executing in a servlet or portlet environment, respectively. sessionScope: A map view of the session-scoped attributes. view: The current UIViewRoot for this view. viewScope (JSF 2): A map view of the attributes scoped to the current view.
Desenvolvimento WEB com JavaServer Faces 41
[8]
Oct 9, 2012
Propriedades do tipo Map podem ser acessadas a seguinte forma de expresso: #{MapObject[key]} Ex.:
<h:outputText value="#{param['userid']}" /> ou <h:outputText value="#{param.userid}" />
[8]
Oct 9, 2012 Desenvolvimento WEB com JavaServer Faces 42
Referncias
Java EE 6: Da configurao aos testes Java Magazine 106 - Luciano Davoglio Molinari http://www.slideshare.net/jornaljava/curso-jsf http://www.algaworks.com/cursos-online/desenvolvimento-web-com-jsf-2/127/o-que-e-jsf / http://en.wikipedia.org/wiki/JavaServer_Faces http://www.algaworks.com/downloads/apostilas/algaworks-dwjsf-desenvolvimento-web-c om-javaserver-faces-2a-edicao.pdf JavaServer Faces 2.0: The Complete Reference. Ed Burns. Chris Schalk com Neil Griffin Desenvolvendo com JavaServer Faces Java Magazine N 72 Marcos Souza http://javaserverfaces.java.net/presentations/demystifyingjsf.pdf http://www.rponte.com.br/wp-content/uploads/2007/10/anatomia-jsf-javaserver-faces-cct .pdf
Desenvolvimento WEB com JavaServer Faces 43
Oct 9, 2012
Oct 9, 2012
44