SlideShare uma empresa Scribd logo
1 de 18
Java WEB
5 Técnicas para acelerar o
desenvolvimento e reduzir Bugs
em aplicações WEB
1
E-Book gratuito - NoBugsProject
http://eepurl.com/cCGHQD
Ou
2
Vamos usar qual tecnologia?
3
Desvantagens do JSF
• Usa um pouco mais de recursos de performance
• Impossibilita reuso de protótipo
• Abstrai muito a parte Web
• Mantém muito retro compatibilidade
• Não é tão flexível quanto outros frameworks
• Ignora paradigma REST
4
Vantagens do JSF
• Produtividade alta
• Faz parte da especificação Java EE
• Existem muitos profissionais que conhecem o JSF
• É muito parecido com HTML na parte da view
• Não é tão lento como pensam se usado da forma certa
• Documentação rica
• Muitas implementações da especificação JSF
• Muitas extensões como por exemplo o Primefaces, Trinidad, Richfaces..
• Fácil integração com os frameworks mais utilizados como Spring, especificações JPA, EJB,
etc...
• Está em segundo lugar dos frameworks mais usados no mundo perdendo somente para o
Spring MVC
5
Component Based X Action Based
Component Based:
JSF
Tapestry
Wicket
Action Based:
Spring MVC
Apache Struts
Vraptor
Grails
6
Implementações do JSF
• Mojarra que é a implementação da SUN (GlassFish),
também (mais) conhecida como JSF RI.
• Myfaces como a implementação open source da Apache
• ADF Faces da Oracle
• A implementação da BEA (já vem embutido WebLogic)
• A implementação da IBM (já vem embutido WebSphere)
• Backbase
• NetAdvantage
7
Extensões do JSF
Componentes:
• PrimeFaces - https://www.primefaces.org/showcase
• RichFaces - http://showcase.richfaces.org/
• ICEfaces - http://icefaces-showcase.icesoft.org/showcase.jsf
• Omnifaces - http://showcase.omnifaces.org/
• Templates
• Facelets
8
Fases do JSF
9
Restore View Phase
Essa fase começa quando uma requisição de uma página JSF é
feita através de um link ou botão clicado.
Durante esta fase, a implementação JSF constrói a “view” da
página em manipulações de eventos, validadores que são salvos
na instância do FacesContext. É permitido resgatar todas as
informações necessárias para processar uma simples requisição.
Podemos ter acesso aos componentes do XHTML através da
classe UIViewRoot, também temos as classes HtmlForm,
HtmlOutputText, HtmlCommandButton, etc..
10
Apply Request Values Phase
Nessa fase, a árvore de componentes da página é restaurada
com os valores que foram enviados na requisição. Esses valores
são obtidos através da requisição, que é aplicada ao componente
em memória e não à propriedade da classe Bean para a qual o
componente aponta.
Existe um cenário em que quando um componente estiver
configurado com o atributo immediate=”true”, o valor dele será
diretamente ligado à propriedade na classe Bean. Esse atributo
tem a característica de tornar a aplicação imediata dos valores na
classe Bean para o componente.
11
Process Validations Phase
Durante essa fase, o JSF executa todos os validadores e valores
registrados que possuem a configuração do campo com o
atributo required=”true”, validators..
12
Update Model Values Phase
13
Nessa fase, os valores já estão validados e registrados nos
componentes que serão atribuídos à respectiva propriedade
na classe Bean. Esse processo envolve conversores dos tipos
de dados, como por exemplo, conversores personalizados
ou data e número.
Invoke Application Phase
14
Nessa fase, o JSF manipula qualquer nível de evento da
aplicação, desde o envio de um formulário ou chamada
para outra página através de um link. Depois que todos os
valores já estarem validados, convertidos e atribuídos para
as propriedades da classe Bean, se for o caso, o JSF
adicionará o método da classe Bean que adicionou a
requisição. Geralmente são eventos que retornam uma
String, que está associada a uma navegação de uma
página dentro da aplicação.
Render Response Phase
15
Por ser a fase final, é exigida que quando a
página for construída e devolvida para o browser,
o JSF solicite que cada componente de tela que
têm suas propriedades, comportamentos e forma,
faça a geração do próprio HTML.
Quais são as 5 técnicas?
16
1. Manipulação efetiva das fases do JSF
2. Uso efetivo de Ajax nas telas JSF
3. Uso efetivo de escopos do JSF
4. Reusar componentes prontos
5. Usar Facelets
Code Time
Agora vamos ver o código!
17
Contato
18
Dúvidas
rafacdelnero@gmail.com
GitHub
https://github.com/rafadelnero/presentations
Twitter
https://twitter.com/RafaDelNero
Linkedin
https://br.linkedin.com/in/rafadelnero
Android App
https://play.google.com/store/apps/details?id=br.com.mediaUniversidadesAndroid

Mais conteúdo relacionado

Mais procurados (20)

Apresentação JSF
Apresentação JSFApresentação JSF
Apresentação JSF
 
Framework web 02 - 2016
Framework web 02 - 2016Framework web 02 - 2016
Framework web 02 - 2016
 
Desenvolvimento Web com JSF
Desenvolvimento Web com JSFDesenvolvimento Web com JSF
Desenvolvimento Web com JSF
 
Framework web 3 - JSF + Spring boot
Framework web 3 - JSF + Spring bootFramework web 3 - JSF + Spring boot
Framework web 3 - JSF + Spring boot
 
Aula parte 2 de JSF 2.2
Aula parte 2 de JSF 2.2Aula parte 2 de JSF 2.2
Aula parte 2 de JSF 2.2
 
Apresentação jsf 1_2
Apresentação jsf 1_2Apresentação jsf 1_2
Apresentação jsf 1_2
 
Jsf – Java Sever Faces
Jsf – Java Sever FacesJsf – Java Sever Faces
Jsf – Java Sever Faces
 
Como escolher o Framework Java para web?
Como escolher o Framework Java para web?Como escolher o Framework Java para web?
Como escolher o Framework Java para web?
 
Web Services
Web ServicesWeb Services
Web Services
 
Arquitetura do Framework Spring
Arquitetura do Framework SpringArquitetura do Framework Spring
Arquitetura do Framework Spring
 
Framework web 01 - Aula UTFPR 2018
Framework web 01 - Aula UTFPR 2018Framework web 01 - Aula UTFPR 2018
Framework web 01 - Aula UTFPR 2018
 
Jsf
JsfJsf
Jsf
 
Introdução - Java WEB
Introdução - Java WEBIntrodução - Java WEB
Introdução - Java WEB
 
Anatomia do JSF, JavaServer Faces
Anatomia do JSF, JavaServer FacesAnatomia do JSF, JavaServer Faces
Anatomia do JSF, JavaServer Faces
 
Interfaces ricas JSF
Interfaces ricas JSF Interfaces ricas JSF
Interfaces ricas JSF
 
JSF 2.0 e ScrumToys
JSF 2.0 e ScrumToysJSF 2.0 e ScrumToys
JSF 2.0 e ScrumToys
 
JavaFX 1.2
JavaFX 1.2JavaFX 1.2
JavaFX 1.2
 
Spring Security e Spring Boot Aula - 2018
Spring Security e Spring Boot Aula - 2018Spring Security e Spring Boot Aula - 2018
Spring Security e Spring Boot Aula - 2018
 
Curso jsf
Curso jsfCurso jsf
Curso jsf
 
Java Web Dev Introdução
Java Web Dev IntroduçãoJava Web Dev Introdução
Java Web Dev Introdução
 

Destaque

Análise de qualidade de código com Sonar - Fernando Boaglio
Análise de qualidade de código com Sonar - Fernando Boaglio Análise de qualidade de código com Sonar - Fernando Boaglio
Análise de qualidade de código com Sonar - Fernando Boaglio Fernando Boaglio
 
Educación Ambiental Unidad I Tema 1
Educación Ambiental Unidad I   Tema 1Educación Ambiental Unidad I   Tema 1
Educación Ambiental Unidad I Tema 1Iris Vasquez
 
ZeroBugsProject - Técnicas de programação efetivas
ZeroBugsProject - Técnicas de programação efetivasZeroBugsProject - Técnicas de programação efetivas
ZeroBugsProject - Técnicas de programação efetivasRafael Chinelato Del Nero
 
3Com 3C562-MODEM-CABLE
3Com 3C562-MODEM-CABLE3Com 3C562-MODEM-CABLE
3Com 3C562-MODEM-CABLEsavomir
 
Presentation "eleven"
Presentation "eleven"Presentation "eleven"
Presentation "eleven"Francisco Aresi
 
Movimentos sociais na Republica Oligárquica
Movimentos sociais na Republica Oligárquica Movimentos sociais na Republica Oligárquica
Movimentos sociais na Republica Oligárquica alinesantana1422
 
Housing prices project eeb
Housing prices project eebHousing prices project eeb
Housing prices project eebErik Bebernes
 
Rabdomiólise Ruptura do tecido muscular que libera uma proteína nociva no san...
Rabdomiólise Ruptura do tecido muscular que libera uma proteína nociva no san...Rabdomiólise Ruptura do tecido muscular que libera uma proteína nociva no san...
Rabdomiólise Ruptura do tecido muscular que libera uma proteína nociva no san...Jmaviael Mava
 
Introduction to TensorFlow, by Machine Learning at Berkeley
Introduction to TensorFlow, by Machine Learning at BerkeleyIntroduction to TensorFlow, by Machine Learning at Berkeley
Introduction to TensorFlow, by Machine Learning at BerkeleyTed Xiao
 
Pasos para quemar un cd o dvd
Pasos para quemar un cd o dvdPasos para quemar un cd o dvd
Pasos para quemar un cd o dvddeimar0
 
Punto y línea sobre el plano
Punto y línea sobre el planoPunto y línea sobre el plano
Punto y línea sobre el planoshaira pulido
 
Flujo de procesos lineales e intermitente
Flujo de procesos lineales e intermitente Flujo de procesos lineales e intermitente
Flujo de procesos lineales e intermitente Jenifferlo16
 
Aumente sua produtividade com Spring Boot
Aumente sua produtividade com Spring BootAumente sua produtividade com Spring Boot
Aumente sua produtividade com Spring BootFernando Boaglio
 
Actividadesy recursos de Moodle
Actividadesy recursos de MoodleActividadesy recursos de Moodle
Actividadesy recursos de Moodlemagaly lopez lopez
 

Destaque (20)

Apresentacao SB CLUB
Apresentacao SB CLUB Apresentacao SB CLUB
Apresentacao SB CLUB
 
Análise de qualidade de código com Sonar - Fernando Boaglio
Análise de qualidade de código com Sonar - Fernando Boaglio Análise de qualidade de código com Sonar - Fernando Boaglio
Análise de qualidade de código com Sonar - Fernando Boaglio
 
Educación Ambiental Unidad I Tema 1
Educación Ambiental Unidad I   Tema 1Educación Ambiental Unidad I   Tema 1
Educación Ambiental Unidad I Tema 1
 
ZeroBugsProject - Técnicas de programação efetivas
ZeroBugsProject - Técnicas de programação efetivasZeroBugsProject - Técnicas de programação efetivas
ZeroBugsProject - Técnicas de programação efetivas
 
3Com 3C562-MODEM-CABLE
3Com 3C562-MODEM-CABLE3Com 3C562-MODEM-CABLE
3Com 3C562-MODEM-CABLE
 
Presentation "eleven"
Presentation "eleven"Presentation "eleven"
Presentation "eleven"
 
Movimentos sociais na Republica Oligárquica
Movimentos sociais na Republica Oligárquica Movimentos sociais na Republica Oligárquica
Movimentos sociais na Republica Oligárquica
 
La mediacion
La mediacionLa mediacion
La mediacion
 
Housing prices project eeb
Housing prices project eebHousing prices project eeb
Housing prices project eeb
 
Validadores digitales
Validadores digitalesValidadores digitales
Validadores digitales
 
La phonologie
La phonologieLa phonologie
La phonologie
 
Rabdomiólise Ruptura do tecido muscular que libera uma proteína nociva no san...
Rabdomiólise Ruptura do tecido muscular que libera uma proteína nociva no san...Rabdomiólise Ruptura do tecido muscular que libera uma proteína nociva no san...
Rabdomiólise Ruptura do tecido muscular que libera uma proteína nociva no san...
 
Introduction to TensorFlow, by Machine Learning at Berkeley
Introduction to TensorFlow, by Machine Learning at BerkeleyIntroduction to TensorFlow, by Machine Learning at Berkeley
Introduction to TensorFlow, by Machine Learning at Berkeley
 
Pasos para quemar un cd o dvd
Pasos para quemar un cd o dvdPasos para quemar un cd o dvd
Pasos para quemar un cd o dvd
 
Punto y línea sobre el plano
Punto y línea sobre el planoPunto y línea sobre el plano
Punto y línea sobre el plano
 
From Boardroom to C-Suite: Why Would a Company Pick a Current Director as CEO?
From Boardroom to C-Suite: Why Would a Company Pick a Current Director as CEO? From Boardroom to C-Suite: Why Would a Company Pick a Current Director as CEO?
From Boardroom to C-Suite: Why Would a Company Pick a Current Director as CEO?
 
Recursos de moodle
Recursos de moodleRecursos de moodle
Recursos de moodle
 
Flujo de procesos lineales e intermitente
Flujo de procesos lineales e intermitente Flujo de procesos lineales e intermitente
Flujo de procesos lineales e intermitente
 
Aumente sua produtividade com Spring Boot
Aumente sua produtividade com Spring BootAumente sua produtividade com Spring Boot
Aumente sua produtividade com Spring Boot
 
Actividadesy recursos de Moodle
Actividadesy recursos de MoodleActividadesy recursos de Moodle
Actividadesy recursos de Moodle
 

Semelhante a 5 técnicas JSF

Produtividade com JavaServer Faces
Produtividade com JavaServer FacesProdutividade com JavaServer Faces
Produtividade com JavaServer FacesEduardo Bregaida
 
Minicurso Java Server Faces
Minicurso Java Server FacesMinicurso Java Server Faces
Minicurso Java Server FacesJoão Longo
 
WEB 2 - Aula 01 - 02.08
WEB 2 - Aula 01 - 02.08WEB 2 - Aula 01 - 02.08
WEB 2 - Aula 01 - 02.08Gilson Silva
 
Novidades do JSF: Um tour completo no JSF 2.2
Novidades do JSF: Um tour completo no JSF 2.2Novidades do JSF: Um tour completo no JSF 2.2
Novidades do JSF: Um tour completo no JSF 2.2Dr. Spock
 
Padrão Arquitetural MVC e suas aplicações para WEB
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 WEBRafael França
 
JSF2 c/ PrimeFaces, RichFaces e ICEfaces
JSF2 c/ PrimeFaces, RichFaces e ICEfacesJSF2 c/ PrimeFaces, RichFaces e ICEfaces
JSF2 c/ PrimeFaces, RichFaces e ICEfacesEder Magalhães
 
TechDay - Sistemas WEB em Java - Rogério N. Jr.
TechDay - Sistemas WEB em Java - Rogério N. Jr.TechDay - Sistemas WEB em Java - Rogério N. Jr.
TechDay - Sistemas WEB em Java - Rogério N. Jr.Rogério Napoleão Jr.
 
Java Server Faces 2 & Rich Faces 4
Java Server Faces 2 & Rich Faces 4Java Server Faces 2 & Rich Faces 4
Java Server Faces 2 & Rich Faces 4Bruno Garcia
 
As grandes novidades do JSF 2.0!
As grandes novidades do JSF 2.0!As grandes novidades do JSF 2.0!
As grandes novidades do JSF 2.0!Diego Santos
 
Rapid Application Development com Tapestry 5
Rapid Application Development com Tapestry 5Rapid Application Development com Tapestry 5
Rapid Application Development com Tapestry 5Marcelo Rodrigues
 
Apresentação do relatório final de estágio
Apresentação do relatório final de estágioApresentação do relatório final de estágio
Apresentação do relatório final de estágioMaurício Linhares
 
Desenvolvimento baseado em componentes com JSF
Desenvolvimento baseado em componentes com JSFDesenvolvimento baseado em componentes com JSF
Desenvolvimento baseado em componentes com JSFEmmanuel Neri
 
Apache Wicket - Desenvolvimento WEB orientado a componentes
Apache Wicket - Desenvolvimento WEB orientado a componentesApache Wicket - Desenvolvimento WEB orientado a componentes
Apache Wicket - Desenvolvimento WEB orientado a componentesCI&T
 
JSF e outras tecnologias Java Web - IMES.java
JSF e outras tecnologias Java Web - IMES.javaJSF e outras tecnologias Java Web - IMES.java
JSF e outras tecnologias Java Web - IMES.javaEduardo Bregaida
 
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)Curso de Enterprise JavaBeans (EJB) (JavaEE 7)
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)Helder da Rocha
 

Semelhante a 5 técnicas JSF (20)

Jsf 2 slideshare
Jsf 2 slideshareJsf 2 slideshare
Jsf 2 slideshare
 
Produtividade com JavaServer Faces
Produtividade com JavaServer FacesProdutividade com JavaServer Faces
Produtividade com JavaServer Faces
 
Minicurso Java Server Faces
Minicurso Java Server FacesMinicurso Java Server Faces
Minicurso Java Server Faces
 
WEB 2 - Aula 01 - 02.08
WEB 2 - Aula 01 - 02.08WEB 2 - Aula 01 - 02.08
WEB 2 - Aula 01 - 02.08
 
Novidades do JSF: Um tour completo no JSF 2.2
Novidades do JSF: Um tour completo no JSF 2.2Novidades do JSF: Um tour completo no JSF 2.2
Novidades do JSF: Um tour completo no JSF 2.2
 
Padrão Arquitetural MVC e suas aplicações para WEB
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
 
1409243945064
14092439450641409243945064
1409243945064
 
Curso jsf
Curso jsfCurso jsf
Curso jsf
 
JSF2 c/ PrimeFaces, RichFaces e ICEfaces
JSF2 c/ PrimeFaces, RichFaces e ICEfacesJSF2 c/ PrimeFaces, RichFaces e ICEfaces
JSF2 c/ PrimeFaces, RichFaces e ICEfaces
 
TechDay - Sistemas WEB em Java - Rogério N. Jr.
TechDay - Sistemas WEB em Java - Rogério N. Jr.TechDay - Sistemas WEB em Java - Rogério N. Jr.
TechDay - Sistemas WEB em Java - Rogério N. Jr.
 
Java Server Faces 2 & Rich Faces 4
Java Server Faces 2 & Rich Faces 4Java Server Faces 2 & Rich Faces 4
Java Server Faces 2 & Rich Faces 4
 
As grandes novidades do JSF 2.0!
As grandes novidades do JSF 2.0!As grandes novidades do JSF 2.0!
As grandes novidades do JSF 2.0!
 
Rapid Application Development com Tapestry 5
Rapid Application Development com Tapestry 5Rapid Application Development com Tapestry 5
Rapid Application Development com Tapestry 5
 
Apresentação do relatório final de estágio
Apresentação do relatório final de estágioApresentação do relatório final de estágio
Apresentação do relatório final de estágio
 
Desenvolvimento baseado em componentes com JSF
Desenvolvimento baseado em componentes com JSFDesenvolvimento baseado em componentes com JSF
Desenvolvimento baseado em componentes com JSF
 
Fundamentos jsf
Fundamentos jsfFundamentos jsf
Fundamentos jsf
 
Apache Wicket - Desenvolvimento WEB orientado a componentes
Apache Wicket - Desenvolvimento WEB orientado a componentesApache Wicket - Desenvolvimento WEB orientado a componentes
Apache Wicket - Desenvolvimento WEB orientado a componentes
 
JSF e outras tecnologias Java Web - IMES.java
JSF e outras tecnologias Java Web - IMES.javaJSF e outras tecnologias Java Web - IMES.java
JSF e outras tecnologias Java Web - IMES.java
 
JSF & REST
JSF & RESTJSF & REST
JSF & REST
 
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)Curso de Enterprise JavaBeans (EJB) (JavaEE 7)
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)
 

5 técnicas JSF

  • 1. Java WEB 5 Técnicas para acelerar o desenvolvimento e reduzir Bugs em aplicações WEB 1
  • 2. E-Book gratuito - NoBugsProject http://eepurl.com/cCGHQD Ou 2
  • 3. Vamos usar qual tecnologia? 3
  • 4. Desvantagens do JSF • Usa um pouco mais de recursos de performance • Impossibilita reuso de protótipo • Abstrai muito a parte Web • Mantém muito retro compatibilidade • Não é tão flexível quanto outros frameworks • Ignora paradigma REST 4
  • 5. Vantagens do JSF • Produtividade alta • Faz parte da especificação Java EE • Existem muitos profissionais que conhecem o JSF • É muito parecido com HTML na parte da view • Não é tão lento como pensam se usado da forma certa • Documentação rica • Muitas implementações da especificação JSF • Muitas extensões como por exemplo o Primefaces, Trinidad, Richfaces.. • Fácil integração com os frameworks mais utilizados como Spring, especificações JPA, EJB, etc... • Está em segundo lugar dos frameworks mais usados no mundo perdendo somente para o Spring MVC 5
  • 6. Component Based X Action Based Component Based: JSF Tapestry Wicket Action Based: Spring MVC Apache Struts Vraptor Grails 6
  • 7. Implementações do JSF • Mojarra que é a implementação da SUN (GlassFish), também (mais) conhecida como JSF RI. • Myfaces como a implementação open source da Apache • ADF Faces da Oracle • A implementação da BEA (já vem embutido WebLogic) • A implementação da IBM (já vem embutido WebSphere) • Backbase • NetAdvantage 7
  • 8. Extensões do JSF Componentes: • PrimeFaces - https://www.primefaces.org/showcase • RichFaces - http://showcase.richfaces.org/ • ICEfaces - http://icefaces-showcase.icesoft.org/showcase.jsf • Omnifaces - http://showcase.omnifaces.org/ • Templates • Facelets 8
  • 10. Restore View Phase Essa fase começa quando uma requisição de uma página JSF é feita através de um link ou botão clicado. Durante esta fase, a implementação JSF constrói a “view” da página em manipulações de eventos, validadores que são salvos na instância do FacesContext. É permitido resgatar todas as informações necessárias para processar uma simples requisição. Podemos ter acesso aos componentes do XHTML através da classe UIViewRoot, também temos as classes HtmlForm, HtmlOutputText, HtmlCommandButton, etc.. 10
  • 11. Apply Request Values Phase Nessa fase, a árvore de componentes da página é restaurada com os valores que foram enviados na requisição. Esses valores são obtidos através da requisição, que é aplicada ao componente em memória e não à propriedade da classe Bean para a qual o componente aponta. Existe um cenário em que quando um componente estiver configurado com o atributo immediate=”true”, o valor dele será diretamente ligado à propriedade na classe Bean. Esse atributo tem a característica de tornar a aplicação imediata dos valores na classe Bean para o componente. 11
  • 12. Process Validations Phase Durante essa fase, o JSF executa todos os validadores e valores registrados que possuem a configuração do campo com o atributo required=”true”, validators.. 12
  • 13. Update Model Values Phase 13 Nessa fase, os valores já estão validados e registrados nos componentes que serão atribuídos à respectiva propriedade na classe Bean. Esse processo envolve conversores dos tipos de dados, como por exemplo, conversores personalizados ou data e número.
  • 14. Invoke Application Phase 14 Nessa fase, o JSF manipula qualquer nível de evento da aplicação, desde o envio de um formulário ou chamada para outra página através de um link. Depois que todos os valores já estarem validados, convertidos e atribuídos para as propriedades da classe Bean, se for o caso, o JSF adicionará o método da classe Bean que adicionou a requisição. Geralmente são eventos que retornam uma String, que está associada a uma navegação de uma página dentro da aplicação.
  • 15. Render Response Phase 15 Por ser a fase final, é exigida que quando a página for construída e devolvida para o browser, o JSF solicite que cada componente de tela que têm suas propriedades, comportamentos e forma, faça a geração do próprio HTML.
  • 16. Quais são as 5 técnicas? 16 1. Manipulação efetiva das fases do JSF 2. Uso efetivo de Ajax nas telas JSF 3. Uso efetivo de escopos do JSF 4. Reusar componentes prontos 5. Usar Facelets
  • 17. Code Time Agora vamos ver o código! 17