Anatomia do JSF, JavaServer Faces

Rafael Ponte
Rafael PonteSoftware Engineer em Zup Innovation
Anatomia do JSF – JavaServer Faces Rafael Ponte [email_address] http://www.rponte.com.br
Agenda ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Quem sou eu? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Desenvolvimento de Aplicações Web
Introdução ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Desenvolvimento Web
Introdução Desenvolvimento Web (Java)
Introdução Model 1 (centrado em páginas)
Introdução Model 1 (Arquitetura centrada em páginas)
Introdução Model 2 (MVC)
Introdução ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Surgiram diversos frameworks MVC baseado no Model 2
Introdução ,[object Object],[object Object],[object Object],[object Object],[object Object],Problemas
JavaServer Faces!  
Mas o que é JavaServer Faces?
O que é JavaServer Faces? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],JavaServer Faces é...
O que é JavaServer Faces? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],JavaServer Faces é...
O que é JavaServer Faces? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],JavaServer Faces é...
O que é JavaServer Faces? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],JavaServer Faces é...
O que é JavaServer Faces? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],JavaServer Faces é...
O que é JavaServer Faces? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],JavaServer Faces é...
O que é JavaServer Faces? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],JavaServer Faces é...
Por que usar JSF?
Por que usar JSF? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Por que usar JSF? ,[object Object],[object Object]
Por que usar JSF? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Por que usar JSF? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Por que usar JSF? MyEclipse (1)
Por que usar JSF? MyEclipse (2)
Por que usar JSF? MyEclipse (3)
Por que usar JSF? NetBeans (1)
Por que usar JSF? NetBeans (2)
Por que usar JSF? NetBeans (3)
Por que usar JSF? JSFToolbox (1)
Por que usar JSF? JSFToolbox (2)
Por que usar JSF? ,[object Object],* Mais componentes?  http://www.jsfmatrix.net/ ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Por que usar JSF? MyFaces (1)
Por que usar JSF? MyFaces (2)
Por que usar JSF? MyFaces (3)
Por que usar JSF? RichFaces (1)
Por que usar JSF? RichFaces (2)
Por que usar JSF? RichFaces (3)
Por que usar JSF? WoodStock (1)
Por que usar JSF? WoodStock (2)
Overview da Tecnologia
Overview da tecnologia ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Conceitos chaves do JSF
Overview da tecnologia ,[object Object],[object Object],Componentes (1)
Overview da tecnologia ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Componentes (2)
Overview da tecnologia ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Renderers
Overview da tecnologia ,[object Object],Managed beans Action ActionForm Managed bean (POJO) http ,[object Object]
Overview da tecnologia Managed beans
Overview da tecnologia ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],JSF Value Binding
Overview da tecnologia JSF Value Binding – Exemplo (1) login.jsp Objeto meuManagedBean
Overview da tecnologia JSF Value Binding – Exemplo (2) login.jsp Managed-beans são registrados dentro do faces-config.xml
Overview da tecnologia ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Converters (1)
Overview da tecnologia Converters (2) javax.faces.convert.Converter
Overview da tecnologia Converters (3) Converter é registrado dentro faces-config.xml, no exemplo abaixo estamos registrando um converter para que toda propriedade do tipo  org.cejug.model.CPF  de qualquer bean use este converter <converter> <converter-for-class> org.cejug.model.CPF </converter-for-class> <converter-class> org.cejug.faces.CPFConverter </converter-class> </converter>
Overview da tecnologia Converters (4) - Exemplo <h:inputText   id = “cpf“   value =&quot;#{UserRegistration.user.cpf}&quot; > <f:converter   converterId = “cejug.CPFConverter“   /> </h:inputText>   Converter declarado explicitamente Ou implicitamente (converter mapeado para objetos do tipo  CPF) <h:inputText   id = “cpf“   value =&quot;#{UserRegistration.user.cpf}&quot; > [Olha mãe!! Nenhum converter   ] </h:inputText>
Overview da tecnologia ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Validators (1)
Overview da tecnologia Validators (2) javax.faces.validator.Validator Validators são registrados no faces-config.xml
Overview da tecnologia Validators (3) - Exemplo <h:inputText   id = “firstName“   value =&quot;#{UserRegistration.user.firstName}“  required = “true” > <f:validateLength   minimum = &quot;2“  maximum = &quot;25“   /> </h:inputText>   Validação para obrigatoriedade e comprimento do campo
Overview da tecnologia ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Navegação (1)
Overview da tecnologia <navigation-rule> <from-view-id> /jsp/deposito/guincheiro/* </from-view-id> <navigation-case> <from-outcome> searchlist </from-outcome> <to-view-id> /jsp/deposito/guincheiro/searchList.jsp </to-view-id> </navigation-case> < navigation-case> <from-outcome> update </from-outcome> <to-view-id> /jsp/deposito/guincheiro/update.jsp </to-view-id> </navigation-case> </navigation-rule> Navegação (2) - Exemplo
Overview da tecnologia ,[object Object],[object Object],[object Object],[object Object],[object Object],Eventos (1)
Overview da tecnologia <h:commandButton   action = “listar”   value = “Listar”   /> Eventos (2) - Exemplo <h:commandLink   action =“#{cadastroBean.cadastrar}”  value = “Cadastrar”   /> public  String cadastrar() { // processa evento return   “listar” ;  // retorna para view “listar” } Action event para navegação Action event que executa método no managed-bean Método no managed-bean
Overview da tecnologia <h:selectOneMenu   id = “UF”   value =“#{cadastroBean.uf}”  valueChangeListener =“#{cadastroBean.carregaCidades}”  onchange = “submit();” > <f:selectItems  value =“#{cadastroBean.ufList}”  /> </h:selectOneMenu> Eventos (3) - Exemplo public  void carregaCidades(ValueChangeEvent event) { // processa evento String uf = event.getNewValue();   // obtém novo valor this . cidadesList  = Servico. carregaCidades (uf); // processa evento } Value-change event que executa método após alterar o valor do componente Método no managed-bean
Overview da tecnologia JSF Request Lifecycle May skip to render phase or abort request Restore View Apply Request Values Process Validations Update Model Invoke Application Render Response Request Response Retrieve component tree from client or session Decode components (populate w/ String values) Convert Strings to Objects Validate Objects Invoke bean method(s) Compute navigation Call setters  on managed beans Call bean getters to populate components
Overview da tecnologia ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],JSF Extension Points
Overview da tecnologia ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],faces-config.xml   (1)
Overview da tecnologia <faces-config  ...  > <!-- ******************************************************************* --> <!-- CONVERTERS --> <!-- ******************************************************************* --> <converter> <converter-id> core.faces.CnpfCnpjConverter </converter-id> <converter-class> core.faces.converter.CnpfCnpjConverter </converter-class> </converter> <!-- ******************************************************************* --> <!-- MANAGED BEANS --> <!-- ******************************************************************* --> <managed-bean> <managed-bean-name> reportBean </managed-bean-name> <managed-bean-class> core.faces.bean.ReportBean </managed-bean-class> <managed-bean-scope> request </managed-bean-scope> </managed-bean> <!-- ******************************************************************* --> <!-- NAVIGATION --> <!-- ******************************************************************* --> <navigation-rule> <from-view-id> /jsp/deposito/tiporeq/searchList.jsp </from-view-id> <navigation-case> <from-outcome> deposito.tiporeq.update </from-outcome> <to-view-id> /jsp/deposito/tiporeq/update.jsp </to-view-id> </navigation-case> </navigation-rule> </faces-config> faces-config.xml   (2) - Exemplo faces-config.xml
Hora de acordar !! Wake up Neo, wake up!!
Metendo a mão na massa
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Metendo a mão na massa
Metendo a mão na massa Inserindo AJAX de maneira fácil e indolor.. ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Conclusão ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Perguntas?
Obrigado!  
1 de 75

Recomendados

Curso de Enterprise JavaBeans (EJB) (JavaEE 7) por
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)Curso de Enterprise JavaBeans (EJB) (JavaEE 7)
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)Helder da Rocha
2.3K visualizações109 slides
A arquitetura modular do Java 9 por
A arquitetura modular do Java 9A arquitetura modular do Java 9
A arquitetura modular do Java 9Helder da Rocha
1.1K visualizações52 slides
Spring - Part 1 - IoC, Di and Beans por
Spring - Part 1 - IoC, Di and Beans Spring - Part 1 - IoC, Di and Beans
Spring - Part 1 - IoC, Di and Beans Hitesh-Java
1.3K visualizações36 slides
Curso de Java Persistence API (JPA) (Java EE 7) por
Curso de Java Persistence API (JPA) (Java EE 7)Curso de Java Persistence API (JPA) (Java EE 7)
Curso de Java Persistence API (JPA) (Java EE 7)Helder da Rocha
3.7K visualizações195 slides
Spring MVC 3.0 Framework por
Spring MVC 3.0 FrameworkSpring MVC 3.0 Framework
Spring MVC 3.0 FrameworkRavi Kant Soni (ravikantsoni03@gmail.com)
6.3K visualizações24 slides
API de segurança do Java EE 8 por
API de segurança do Java EE 8API de segurança do Java EE 8
API de segurança do Java EE 8Helder da Rocha
1.6K visualizações56 slides

Mais conteúdo relacionado

Mais procurados

PUC SE Day 2019 - SpringBoot por
PUC SE Day 2019 - SpringBootPUC SE Day 2019 - SpringBoot
PUC SE Day 2019 - SpringBootJosué Neis
696 visualizações35 slides
Introduction to spring boot por
Introduction to spring bootIntroduction to spring boot
Introduction to spring bootSantosh Kumar Kar
19.4K visualizações26 slides
Spring Boot por
Spring BootSpring Boot
Spring BootJiayun Zhou
2.5K visualizações110 slides
WebLogic Deployment Plan Example por
WebLogic Deployment Plan ExampleWebLogic Deployment Plan Example
WebLogic Deployment Plan ExampleJames Bayer
21.9K visualizações18 slides
Spring security por
Spring securitySpring security
Spring securitySaurabh Sharma
900 visualizações20 slides
Spring annotation por
Spring annotationSpring annotation
Spring annotationRajiv Srivastava
3K visualizações6 slides

Mais procurados(20)

PUC SE Day 2019 - SpringBoot por Josué Neis
PUC SE Day 2019 - SpringBootPUC SE Day 2019 - SpringBoot
PUC SE Day 2019 - SpringBoot
Josué Neis696 visualizações
Introduction to spring boot por Santosh Kumar Kar
Introduction to spring bootIntroduction to spring boot
Introduction to spring boot
Santosh Kumar Kar19.4K visualizações
Spring Boot por Jiayun Zhou
Spring BootSpring Boot
Spring Boot
Jiayun Zhou2.5K visualizações
WebLogic Deployment Plan Example por James Bayer
WebLogic Deployment Plan ExampleWebLogic Deployment Plan Example
WebLogic Deployment Plan Example
James Bayer21.9K visualizações
Spring security por Saurabh Sharma
Spring securitySpring security
Spring security
Saurabh Sharma900 visualizações
Spring annotation por Rajiv Srivastava
Spring annotationSpring annotation
Spring annotation
Rajiv Srivastava3K visualizações
Spring Framework Petclinic sample application por Antoine Rey
Spring Framework Petclinic sample applicationSpring Framework Petclinic sample application
Spring Framework Petclinic sample application
Antoine Rey31.7K visualizações
Selenium WebDriver with C# por srivinayak
Selenium WebDriver with C#Selenium WebDriver with C#
Selenium WebDriver with C#
srivinayak7.2K visualizações
Spring boot por sdeeg
Spring bootSpring boot
Spring boot
sdeeg26.6K visualizações
Introduction to Spring Boot por Trey Howard
Introduction to Spring BootIntroduction to Spring Boot
Introduction to Spring Boot
Trey Howard656 visualizações
dominocamp2022.t1s1.dde.pptx por Ulrich Krause
dominocamp2022.t1s1.dde.pptxdominocamp2022.t1s1.dde.pptx
dominocamp2022.t1s1.dde.pptx
Ulrich Krause3.3K visualizações
Java EE Introduction por ejlp12
Java EE IntroductionJava EE Introduction
Java EE Introduction
ejlp124.9K visualizações
Ch12 Spring 起步走 por Justin Lin
Ch12 Spring 起步走Ch12 Spring 起步走
Ch12 Spring 起步走
Justin Lin274 visualizações
Design Beautiful REST + JSON APIs por Stormpath
Design Beautiful REST + JSON APIsDesign Beautiful REST + JSON APIs
Design Beautiful REST + JSON APIs
Stormpath225.9K visualizações
Spring Framework Tutorial | Spring Tutorial For Beginners With Examples | Jav... por Edureka!
Spring Framework Tutorial | Spring Tutorial For Beginners With Examples | Jav...Spring Framework Tutorial | Spring Tutorial For Beginners With Examples | Jav...
Spring Framework Tutorial | Spring Tutorial For Beginners With Examples | Jav...
Edureka!2.8K visualizações
Spring Boot Interview Questions | Edureka por Edureka!
Spring Boot Interview Questions | EdurekaSpring Boot Interview Questions | Edureka
Spring Boot Interview Questions | Edureka
Edureka!999 visualizações
Advance Java Tutorial | J2EE, Java Servlets, JSP, JDBC | Java Certification T... por Edureka!
Advance Java Tutorial | J2EE, Java Servlets, JSP, JDBC | Java Certification T...Advance Java Tutorial | J2EE, Java Servlets, JSP, JDBC | Java Certification T...
Advance Java Tutorial | J2EE, Java Servlets, JSP, JDBC | Java Certification T...
Edureka!1K visualizações
Spring Framework por tola99
Spring Framework  Spring Framework
Spring Framework
tola991.2K visualizações
Telosys project booster Paris Open Source Summit 2019 por Laurent Guérin
Telosys project booster Paris Open Source Summit 2019Telosys project booster Paris Open Source Summit 2019
Telosys project booster Paris Open Source Summit 2019
Laurent Guérin5.9K visualizações

Destaque

Introdução ao JavaServer Faces por
Introdução ao JavaServer FacesIntrodução ao JavaServer Faces
Introdução ao JavaServer FacesWillian Watanabe
562 visualizações57 slides
Curso jsf por
Curso jsfCurso jsf
Curso jsfjornaljava
4.4K visualizações108 slides
Apresentação JSF por
Apresentação JSFApresentação JSF
Apresentação JSFCarlos Henrique
1.4K visualizações29 slides
Apostila jsf por
Apostila jsfApostila jsf
Apostila jsfFernanda Diego
5.2K visualizações204 slides
JSF - JavaServer Faces por
JSF - JavaServer FacesJSF - JavaServer Faces
JSF - JavaServer Facesnetinhoteixeira
1.5K visualizações28 slides
Boas Práticas com JavaServer Faces (Jsf) por
Boas Práticas com JavaServer Faces (Jsf)Boas Práticas com JavaServer Faces (Jsf)
Boas Práticas com JavaServer Faces (Jsf)Rafael Ponte
4.6K visualizações36 slides

Destaque(8)

Introdução ao JavaServer Faces por Willian Watanabe
Introdução ao JavaServer FacesIntrodução ao JavaServer Faces
Introdução ao JavaServer Faces
Willian Watanabe562 visualizações
Curso jsf por jornaljava
Curso jsfCurso jsf
Curso jsf
jornaljava4.4K visualizações
Apresentação JSF por Carlos Henrique
Apresentação JSFApresentação JSF
Apresentação JSF
Carlos Henrique1.4K visualizações
Apostila jsf por Fernanda Diego
Apostila jsfApostila jsf
Apostila jsf
Fernanda Diego5.2K visualizações
JSF - JavaServer Faces por netinhoteixeira
JSF - JavaServer FacesJSF - JavaServer Faces
JSF - JavaServer Faces
netinhoteixeira1.5K visualizações
Boas Práticas com JavaServer Faces (Jsf) por Rafael Ponte
Boas Práticas com JavaServer Faces (Jsf)Boas Práticas com JavaServer Faces (Jsf)
Boas Práticas com JavaServer Faces (Jsf)
Rafael Ponte4.6K visualizações
Os 10 maus hábitos dos desenvolvedores JSF por Rafael Ponte
Os 10 maus hábitos dos desenvolvedores JSFOs 10 maus hábitos dos desenvolvedores JSF
Os 10 maus hábitos dos desenvolvedores JSF
Rafael Ponte14.5K visualizações

Similar a Anatomia do JSF, JavaServer Faces

Anatomia do JSF – JavaServer Faces por
Anatomia do JSF – JavaServer FacesAnatomia do JSF – JavaServer Faces
Anatomia do JSF – JavaServer Facescejug
295 visualizações75 slides
Curso jsf por
Curso jsfCurso jsf
Curso jsfMiguel Vilaca
175 visualizações107 slides
Serra StarTec 2013 - Java EE por
Serra StarTec 2013 - Java EESerra StarTec 2013 - Java EE
Serra StarTec 2013 - Java EERodrigo Cândido da Silva
917 visualizações59 slides
GUJavaSC - Mini-curso Java EE por
GUJavaSC - Mini-curso Java EEGUJavaSC - Mini-curso Java EE
GUJavaSC - Mini-curso Java EERodrigo Cândido da Silva
1.5K visualizações60 slides
Tutorial Java EE por
Tutorial Java EETutorial Java EE
Tutorial Java EERodrigo Cândido da Silva
7.8K visualizações74 slides
UtilizandoJSF_no_Desenvolvimento_de_aplicacoes_web_by_Thales_Batista_de_Melo por
UtilizandoJSF_no_Desenvolvimento_de_aplicacoes_web_by_Thales_Batista_de_MeloUtilizandoJSF_no_Desenvolvimento_de_aplicacoes_web_by_Thales_Batista_de_Melo
UtilizandoJSF_no_Desenvolvimento_de_aplicacoes_web_by_Thales_Batista_de_Melothalesboss
539 visualizações34 slides

Similar a Anatomia do JSF, JavaServer Faces(20)

Anatomia do JSF – JavaServer Faces por cejug
Anatomia do JSF – JavaServer FacesAnatomia do JSF – JavaServer Faces
Anatomia do JSF – JavaServer Faces
cejug295 visualizações
Curso jsf por Miguel Vilaca
Curso jsfCurso jsf
Curso jsf
Miguel Vilaca175 visualizações
UtilizandoJSF_no_Desenvolvimento_de_aplicacoes_web_by_Thales_Batista_de_Melo por thalesboss
UtilizandoJSF_no_Desenvolvimento_de_aplicacoes_web_by_Thales_Batista_de_MeloUtilizandoJSF_no_Desenvolvimento_de_aplicacoes_web_by_Thales_Batista_de_Melo
UtilizandoJSF_no_Desenvolvimento_de_aplicacoes_web_by_Thales_Batista_de_Melo
thalesboss539 visualizações
Apresentação por Sylvio Barbon
ApresentaçãoApresentação
Apresentação
Sylvio Barbon1.7K visualizações
Jsf – Java Sever Faces por bielgott
Jsf – Java Sever FacesJsf – Java Sever Faces
Jsf – Java Sever Faces
bielgott3.4K visualizações
JSF2 ScrumToys SestInfo 2010 por Eder Magalhães
JSF2 ScrumToys SestInfo 2010JSF2 ScrumToys SestInfo 2010
JSF2 ScrumToys SestInfo 2010
Eder Magalhães364 visualizações
Como Sobreviver Com Java2 por Saulo Arruda
Como Sobreviver Com Java2Como Sobreviver Com Java2
Como Sobreviver Com Java2
Saulo Arruda300 visualizações
GUJavaSC - Desenvolvendo uma Aplicação com Java EE por Rodrigo Cândido da Silva
GUJavaSC - Desenvolvendo uma Aplicação com Java EEGUJavaSC - Desenvolvendo uma Aplicação com Java EE
GUJavaSC - Desenvolvendo uma Aplicação com Java EE
Rodrigo Cândido da Silva4.7K visualizações
Spring: Overview do framework mais popular para desenvolvimento em Java por Mariana de Azevedo Santos
Spring: Overview do framework mais popular para desenvolvimento em JavaSpring: Overview do framework mais popular para desenvolvimento em Java
Spring: Overview do framework mais popular para desenvolvimento em Java
Mariana de Azevedo Santos257 visualizações
JavaServer Faces - Desenvolvendo aplicações web com produtividade por Rafael Ponte
JavaServer Faces - Desenvolvendo aplicações web com produtividadeJavaServer Faces - Desenvolvendo aplicações web com produtividade
JavaServer Faces - Desenvolvendo aplicações web com produtividade
Rafael Ponte1.5K visualizações
Flisolgo2010 por Paulo Jerônimo
Flisolgo2010Flisolgo2010
Flisolgo2010
Paulo Jerônimo534 visualizações
Navegando em um mar de siglas do mundo java por Andrei Tognolo
Navegando em um mar de siglas do mundo javaNavegando em um mar de siglas do mundo java
Navegando em um mar de siglas do mundo java
Andrei Tognolo1.3K visualizações
Padrão Arquitetural MVC e suas aplicações para WEB por Rafael França
Padrão Arquitetural MVC e suas aplicações para WEBPadrão Arquitetural MVC e suas aplicações para WEB
Padrão Arquitetural MVC e suas aplicações para WEB
Rafael França5.2K visualizações
JavaServer Faces Produtividade em Desenvolvimento por Eduardo Bregaida
JavaServer Faces Produtividade em DesenvolvimentoJavaServer Faces Produtividade em Desenvolvimento
JavaServer Faces Produtividade em Desenvolvimento
Eduardo Bregaida1.6K visualizações
JSF e outras tecnologias Java Web - IMES.java por Eduardo Bregaida
JSF e outras tecnologias Java Web - IMES.javaJSF e outras tecnologias Java Web - IMES.java
JSF e outras tecnologias Java Web - IMES.java
Eduardo Bregaida3K visualizações

Mais de Rafael Ponte

TechDay: 10 Features do Oracle que voce nao conhecia - CONNECT BY CLAUSE por
TechDay: 10 Features do Oracle que voce nao conhecia - CONNECT BY CLAUSETechDay: 10 Features do Oracle que voce nao conhecia - CONNECT BY CLAUSE
TechDay: 10 Features do Oracle que voce nao conhecia - CONNECT BY CLAUSERafael Ponte
658 visualizações161 slides
TechDay Retrospectiva 2018 por
TechDay Retrospectiva 2018TechDay Retrospectiva 2018
TechDay Retrospectiva 2018Rafael Ponte
230 visualizações93 slides
Arquitetura Java - Escalando além do Hype por
Arquitetura Java - Escalando além do HypeArquitetura Java - Escalando além do Hype
Arquitetura Java - Escalando além do HypeRafael Ponte
1.8K visualizações196 slides
Como treinar seu estagiario por
Como treinar seu estagiarioComo treinar seu estagiario
Como treinar seu estagiarioRafael Ponte
1.4K visualizações151 slides
Lidando com o Caos: Testando Código PLSQL em um Projeto Critico por
Lidando com o Caos: Testando Código PLSQL em um Projeto CriticoLidando com o Caos: Testando Código PLSQL em um Projeto Critico
Lidando com o Caos: Testando Código PLSQL em um Projeto CriticoRafael Ponte
1.7K visualizações240 slides
Como Apresentar Codigo em Slides - Javou #7 - 2016 por
Como Apresentar Codigo em Slides - Javou #7 - 2016Como Apresentar Codigo em Slides - Javou #7 - 2016
Como Apresentar Codigo em Slides - Javou #7 - 2016Rafael Ponte
27.5K visualizações86 slides

Mais de Rafael Ponte(20)

TechDay: 10 Features do Oracle que voce nao conhecia - CONNECT BY CLAUSE por Rafael Ponte
TechDay: 10 Features do Oracle que voce nao conhecia - CONNECT BY CLAUSETechDay: 10 Features do Oracle que voce nao conhecia - CONNECT BY CLAUSE
TechDay: 10 Features do Oracle que voce nao conhecia - CONNECT BY CLAUSE
Rafael Ponte658 visualizações
TechDay Retrospectiva 2018 por Rafael Ponte
TechDay Retrospectiva 2018TechDay Retrospectiva 2018
TechDay Retrospectiva 2018
Rafael Ponte230 visualizações
Arquitetura Java - Escalando além do Hype por Rafael Ponte
Arquitetura Java - Escalando além do HypeArquitetura Java - Escalando além do Hype
Arquitetura Java - Escalando além do Hype
Rafael Ponte1.8K visualizações
Como treinar seu estagiario por Rafael Ponte
Como treinar seu estagiarioComo treinar seu estagiario
Como treinar seu estagiario
Rafael Ponte1.4K visualizações
Lidando com o Caos: Testando Código PLSQL em um Projeto Critico por Rafael Ponte
Lidando com o Caos: Testando Código PLSQL em um Projeto CriticoLidando com o Caos: Testando Código PLSQL em um Projeto Critico
Lidando com o Caos: Testando Código PLSQL em um Projeto Critico
Rafael Ponte1.7K visualizações
Como Apresentar Codigo em Slides - Javou #7 - 2016 por Rafael Ponte
Como Apresentar Codigo em Slides - Javou #7 - 2016Como Apresentar Codigo em Slides - Javou #7 - 2016
Como Apresentar Codigo em Slides - Javou #7 - 2016
Rafael Ponte27.5K visualizações
Migrations for Java (Javou #4 - JavaCE) por Rafael Ponte
Migrations for Java (Javou #4 - JavaCE)Migrations for Java (Javou #4 - JavaCE)
Migrations for Java (Javou #4 - JavaCE)
Rafael Ponte1.5K visualizações
Importancia dos Testes Automatizados no dia a dia FIC-Estacio 2015 por Rafael Ponte
Importancia dos Testes Automatizados no dia a dia FIC-Estacio 2015Importancia dos Testes Automatizados no dia a dia FIC-Estacio 2015
Importancia dos Testes Automatizados no dia a dia FIC-Estacio 2015
Rafael Ponte1.3K visualizações
Hibernate efetivo (IA-2014 / Disturbing the Mind) por Rafael Ponte
Hibernate efetivo (IA-2014 / Disturbing the Mind)Hibernate efetivo (IA-2014 / Disturbing the Mind)
Hibernate efetivo (IA-2014 / Disturbing the Mind)
Rafael Ponte1.1K visualizações
Hibernate efetivo (COALTI-2014 / ALJUG) por Rafael Ponte
Hibernate efetivo (COALTI-2014 / ALJUG)Hibernate efetivo (COALTI-2014 / ALJUG)
Hibernate efetivo (COALTI-2014 / ALJUG)
Rafael Ponte2.1K visualizações
Migrations for Java (QCONSP2013) por Rafael Ponte
Migrations for Java (QCONSP2013)Migrations for Java (QCONSP2013)
Migrations for Java (QCONSP2013)
Rafael Ponte6.7K visualizações
Importancia dos Testes Automatizados no dia a dia (Don't Panic) por Rafael Ponte
Importancia dos Testes Automatizados no dia a dia (Don't Panic)Importancia dos Testes Automatizados no dia a dia (Don't Panic)
Importancia dos Testes Automatizados no dia a dia (Don't Panic)
Rafael Ponte1.4K visualizações
Importância dos testes automatizados no dia a dia por Rafael Ponte
Importância dos testes automatizados no dia a diaImportância dos testes automatizados no dia a dia
Importância dos testes automatizados no dia a dia
Rafael Ponte5.5K visualizações
Hibernate Efetivo (QCONSP-2012) por Rafael Ponte
Hibernate Efetivo (QCONSP-2012)Hibernate Efetivo (QCONSP-2012)
Hibernate Efetivo (QCONSP-2012)
Rafael Ponte12.4K visualizações
Migrations for Java por Rafael Ponte
Migrations for JavaMigrations for Java
Migrations for Java
Rafael Ponte1.7K visualizações
Os 10 maus habitos dos desenvolvedores jsf (JustJava e CCT) por Rafael Ponte
Os 10 maus habitos dos desenvolvedores jsf (JustJava e CCT)Os 10 maus habitos dos desenvolvedores jsf (JustJava e CCT)
Os 10 maus habitos dos desenvolvedores jsf (JustJava e CCT)
Rafael Ponte3.8K visualizações
Importância dos testes automatizadoss por Rafael Ponte
Importância dos testes automatizadossImportância dos testes automatizadoss
Importância dos testes automatizadoss
Rafael Ponte1.3K visualizações
Greenbar - Testes automatizados na sua empresa por Rafael Ponte
Greenbar - Testes automatizados na sua empresaGreenbar - Testes automatizados na sua empresa
Greenbar - Testes automatizados na sua empresa
Rafael Ponte936 visualizações
Desafios de um desenvolvedor JSF por Rafael Ponte
Desafios de um desenvolvedor JSFDesafios de um desenvolvedor JSF
Desafios de um desenvolvedor JSF
Rafael Ponte2.2K visualizações
Curso de Java server faces (JSF) por Rafael Ponte
Curso de Java server faces (JSF)Curso de Java server faces (JSF)
Curso de Java server faces (JSF)
Rafael Ponte6.7K visualizações

Anatomia do JSF, JavaServer Faces

  • 1. Anatomia do JSF – JavaServer Faces Rafael Ponte [email_address] http://www.rponte.com.br
  • 2.
  • 3.
  • 5.
  • 7. Introdução Model 1 (centrado em páginas)
  • 8. Introdução Model 1 (Arquitetura centrada em páginas)
  • 10.
  • 11.
  • 13. Mas o que é JavaServer Faces?
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21. Por que usar JSF?
  • 22.
  • 23.
  • 24.
  • 25.
  • 26. Por que usar JSF? MyEclipse (1)
  • 27. Por que usar JSF? MyEclipse (2)
  • 28. Por que usar JSF? MyEclipse (3)
  • 29. Por que usar JSF? NetBeans (1)
  • 30. Por que usar JSF? NetBeans (2)
  • 31. Por que usar JSF? NetBeans (3)
  • 32. Por que usar JSF? JSFToolbox (1)
  • 33. Por que usar JSF? JSFToolbox (2)
  • 34.
  • 35. Por que usar JSF? MyFaces (1)
  • 36. Por que usar JSF? MyFaces (2)
  • 37. Por que usar JSF? MyFaces (3)
  • 38. Por que usar JSF? RichFaces (1)
  • 39. Por que usar JSF? RichFaces (2)
  • 40. Por que usar JSF? RichFaces (3)
  • 41. Por que usar JSF? WoodStock (1)
  • 42. Por que usar JSF? WoodStock (2)
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49. Overview da tecnologia Managed beans
  • 50.
  • 51. Overview da tecnologia JSF Value Binding – Exemplo (1) login.jsp Objeto meuManagedBean
  • 52. Overview da tecnologia JSF Value Binding – Exemplo (2) login.jsp Managed-beans são registrados dentro do faces-config.xml
  • 53.
  • 54. Overview da tecnologia Converters (2) javax.faces.convert.Converter
  • 55. Overview da tecnologia Converters (3) Converter é registrado dentro faces-config.xml, no exemplo abaixo estamos registrando um converter para que toda propriedade do tipo org.cejug.model.CPF de qualquer bean use este converter <converter> <converter-for-class> org.cejug.model.CPF </converter-for-class> <converter-class> org.cejug.faces.CPFConverter </converter-class> </converter>
  • 56. Overview da tecnologia Converters (4) - Exemplo <h:inputText id = “cpf“ value =&quot;#{UserRegistration.user.cpf}&quot; > <f:converter converterId = “cejug.CPFConverter“ /> </h:inputText> Converter declarado explicitamente Ou implicitamente (converter mapeado para objetos do tipo CPF) <h:inputText id = “cpf“ value =&quot;#{UserRegistration.user.cpf}&quot; > [Olha mãe!! Nenhum converter  ] </h:inputText>
  • 57.
  • 58. Overview da tecnologia Validators (2) javax.faces.validator.Validator Validators são registrados no faces-config.xml
  • 59. Overview da tecnologia Validators (3) - Exemplo <h:inputText id = “firstName“ value =&quot;#{UserRegistration.user.firstName}“ required = “true” > <f:validateLength minimum = &quot;2“ maximum = &quot;25“ /> </h:inputText> Validação para obrigatoriedade e comprimento do campo
  • 60.
  • 61. Overview da tecnologia <navigation-rule> <from-view-id> /jsp/deposito/guincheiro/* </from-view-id> <navigation-case> <from-outcome> searchlist </from-outcome> <to-view-id> /jsp/deposito/guincheiro/searchList.jsp </to-view-id> </navigation-case> < navigation-case> <from-outcome> update </from-outcome> <to-view-id> /jsp/deposito/guincheiro/update.jsp </to-view-id> </navigation-case> </navigation-rule> Navegação (2) - Exemplo
  • 62.
  • 63. Overview da tecnologia <h:commandButton action = “listar” value = “Listar” /> Eventos (2) - Exemplo <h:commandLink action =“#{cadastroBean.cadastrar}” value = “Cadastrar” /> public String cadastrar() { // processa evento return “listar” ; // retorna para view “listar” } Action event para navegação Action event que executa método no managed-bean Método no managed-bean
  • 64. Overview da tecnologia <h:selectOneMenu id = “UF” value =“#{cadastroBean.uf}” valueChangeListener =“#{cadastroBean.carregaCidades}” onchange = “submit();” > <f:selectItems value =“#{cadastroBean.ufList}” /> </h:selectOneMenu> Eventos (3) - Exemplo public void carregaCidades(ValueChangeEvent event) { // processa evento String uf = event.getNewValue(); // obtém novo valor this . cidadesList = Servico. carregaCidades (uf); // processa evento } Value-change event que executa método após alterar o valor do componente Método no managed-bean
  • 65. Overview da tecnologia JSF Request Lifecycle May skip to render phase or abort request Restore View Apply Request Values Process Validations Update Model Invoke Application Render Response Request Response Retrieve component tree from client or session Decode components (populate w/ String values) Convert Strings to Objects Validate Objects Invoke bean method(s) Compute navigation Call setters on managed beans Call bean getters to populate components
  • 66.
  • 67.
  • 68. Overview da tecnologia <faces-config ... > <!-- ******************************************************************* --> <!-- CONVERTERS --> <!-- ******************************************************************* --> <converter> <converter-id> core.faces.CnpfCnpjConverter </converter-id> <converter-class> core.faces.converter.CnpfCnpjConverter </converter-class> </converter> <!-- ******************************************************************* --> <!-- MANAGED BEANS --> <!-- ******************************************************************* --> <managed-bean> <managed-bean-name> reportBean </managed-bean-name> <managed-bean-class> core.faces.bean.ReportBean </managed-bean-class> <managed-bean-scope> request </managed-bean-scope> </managed-bean> <!-- ******************************************************************* --> <!-- NAVIGATION --> <!-- ******************************************************************* --> <navigation-rule> <from-view-id> /jsp/deposito/tiporeq/searchList.jsp </from-view-id> <navigation-case> <from-outcome> deposito.tiporeq.update </from-outcome> <to-view-id> /jsp/deposito/tiporeq/update.jsp </to-view-id> </navigation-case> </navigation-rule> </faces-config> faces-config.xml (2) - Exemplo faces-config.xml
  • 69. Hora de acordar !! Wake up Neo, wake up!!
  • 70. Metendo a mão na massa
  • 71.
  • 72.
  • 73.