SlideShare uma empresa Scribd logo
1 de 28
Baixar para ler offline
JSF JavaServer Faces
Francisco Ernesto Teixeira - fco.ernesto@gmail.com
Quem
Nordestino dali de Recife, colega de vocês do curso
de Sistemas de Informação. Botou os pés pra rua há
16 anos, tem 12 fora de Casa e 3 anos curtindo BSB.
Conheceu o Java (?) em 97 com os applets (?)
quando ainda não havia o Flash.
Um pouco de história
Século passado, Web, CGI, Servlet, JSP, MVC, Struts...
Enfim JavaServer Faces!!!
Explique-me
O JSF é uma tecnologia, que:
● Usa boas práticas
● Tem o MVC na veia!!!
● Como qualquer tecnologia, requer bom senso em
seu uso
Relembrando MVC
MVC do JSF
O que é que tem nele?
● Um conjunto de APIs para componentes de UI
● Gerenciamento de estado, controle de eventos,
validação de entradas
● É uma biblioteca, coloca juntinho do Tomcat, Weblogic,
Glassfish, JBoss...
Existem tantos outros
● Leve, flexível e extremamente prático
● Toda IDE possui
● Eu gosto do NetBeans, mas o Eclipse também tem
● Reuso bem “facinho”
● Requisições AJAX bem organizado, você não precisa
mexer diretamente
Entendo algumas coisas
● No HTML, temos as TAGs
● No JSF também temos as TAGs
● O HTML é um “tio” do JSF
● No JSF existem TAGs diferentes, mas vamos aprender
a gostar deles
● A mágica acontece no Servidor, especificamente no
FacesServlet
Então...
HTML JSF
head h:head
body h:body
form h:form
div h:panelGroup
label h:outputLabel
input[type=”hidden”] h:inputHidden
input[type=”text”] h:inputText
- f:convertDateTime
select h:selectOneMenu
option f:selectItem
button h:commandButton clique me
uma opção
Continuando...
HTML JSF
table h:dataTable
td h:column
th f:facet name=”header”
a h:commandLink
- h:outputText
- f:setPropertyActionList
ener value=”” target=””
sou uma âncora
Quem usa?
● Tramita, TCE-PB
● Ministério Público, Judiciários, Procuradorias
● Vai trabalhar na Oi? JSF
● Matéria de Concurso
Problemas no mercado
● Falta mão de obra especializada
● Os problemas são simples, as necessidades são
muitas
Voltando para a BR
Vamos fazer um simples CRUD com o modelo:
Sim, e...?
● Como já disse que gosto do NetBeans, vou usar o
NetBeans... mas podem usar o Eclipse se preferir
● Para agilizar, usaremos o Apache Tomcat que vem
nele, Hibernate e uma instância do MySQL
Só isso?
Sim!!! E para facilitar lhes dou o fluxo das telas,
diagrama da classe principal, diagrama dos pacotes e
só não pego na mãozinha porque vocês já podem
caminhar sozinhos!!!
Fluxo de Telas
essa tela é da listagem
Classe Principal
Pacotes
O pulo do gatinho
Erro 404
● Precisa ser feitos ajustes no Hibernate para funcionar
direito com o MySQL
● Está havendo erro de acentos na hora que insere uma
Pessoa (somente no Tomcat)
Erro 404 - Hibernate
Precisamos adicionar no hibernate.cfg.xml:
<!-- Enable Hibernate's automatic session context management -->
<property
name="current_session_context_class">thread</property>
<!-- DONE: Unknown entity: modelo.entidade.Pessoa -->
<mapping class="modelo.entidade.Pessoa" />
Erro 404 - Acentos
O Tomcat vem com ISO8859-1, hoje devemos sempre
usar UTF-8. Corrigimos isso com a criação de um filtro
src/java/util/filtro/EncodeFilter.java. Não vamos nos
adentrar nele, no projeto que vocês possuem em mãos
ele já existe. Podem usar e abusar à vontade!
Modo Turbo
O JSF não para por aí. Existem outras bibliotecas que
“turbinam” a sua capacidade. Dentre eles, os mais
conhecidos:
RichFaces - http://www.jboss.org/richfaces
ICEFaces - http://www.icesoft.org/
PrimeFaces - http://primefaces.org/
Comparativo
Fonte: http://www.mastertheboss.com/richfaces/primefaces-vs-richfaces-vs-icefaces/
Vantagens Desvantagens
● Biblioteca JSF madura e amplamente usada
● Possui maior integração com o servidor
● Boa performance
● Pouquíssimos componentes disponíveis,
entretanto você pode usar o material de
desenvolvimento (SDK) para criar novos
● Documentação poderia ser melhor detalhada
● Renderização única "Direct-2-DOM"
● Grande variedade de componentes baseados
no servidor
● Maior variedade de documentos e tutoriais,
entretanto quase tudo requer registro
● Parece ser o de menor performance, ao
menos comparando o dataTable
● Consiste da maior quantidade de incidentes
críticos abertos
● Gigantesca coleção de componentes
baseados no levíssimo jQuery
● Simples de usar e documentação prática
● Aparenta ser a biblioteca mais rápida
● Os tópicos dos desenvolvedores dizem:
Primefaces
● O mais novo do grupo, então possívelmente
menos maduro que o RichFaces e o IceFaces
● Mais centrado no cliente, possui menores
melhorias no núcleo do JSF que o outros dois
Em gráfico
Fonte: http://www.google.com.br/trends/explore#q=primefaces%2C%20icefaces%2C%20richfaces&cmpt=q
Exemplos
Muitos exemplos para brincar e fazer a melhor escolha
de acordo com sua necessidade (lembre-se que o
PrimeFaces tem maior busca e previsão):
http://showcase.richfaces.org/
http://icefaces-showcase.icesoft.org/
http://www.primefaces.org/showcase/
Dúvidas?
alle Fragen?

Mais conteúdo relacionado

Mais procurados

JSF com Primefaces
JSF com PrimefacesJSF com Primefaces
JSF com PrimefacesFabio Noth
 
Jsf com hibernate, spring security e maven
Jsf com hibernate, spring security e mavenJsf com hibernate, spring security e maven
Jsf com hibernate, spring security e mavenLeandro Costa
 
Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem DorPlay Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem DorAllyson Barros
 
Dominando Jsf E Facelets Utilizando Spring 2.5, Hibernate E Jpa
Dominando Jsf E Facelets Utilizando Spring 2.5, Hibernate E JpaDominando Jsf E Facelets Utilizando Spring 2.5, Hibernate E Jpa
Dominando Jsf E Facelets Utilizando Spring 2.5, Hibernate E JpaAna Albert
 
Desenvolvimento web em java com JSP e Servlets
Desenvolvimento web em java com JSP e ServletsDesenvolvimento web em java com JSP e Servlets
Desenvolvimento web em java com JSP e ServletsIgo Coelho
 
Apresentação jsf 2.0
Apresentação jsf 2.0Apresentação jsf 2.0
Apresentação jsf 2.0Paulo Neto
 
JSF 2 e Primefaces - 4º Encontro Mensal do Gojava
JSF 2 e Primefaces - 4º Encontro Mensal do GojavaJSF 2 e Primefaces - 4º Encontro Mensal do Gojava
JSF 2 e Primefaces - 4º Encontro Mensal do GojavaFrederico Maia Arantes
 
Desenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHPDesenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHPSérgio Vilar
 
Construindo aplicações web java com netbeans
Construindo aplicações web java com netbeansConstruindo aplicações web java com netbeans
Construindo aplicações web java com netbeansSliedesharessbarbosa
 
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrões
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrõesMC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrões
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrõesRodrigo Cândido da Silva
 
JSP - Java Serves Pages
JSP - Java Serves PagesJSP - Java Serves Pages
JSP - Java Serves PagesAmanda Luz
 
VRaptor - Um Framework MVC Web para desenvolvimento ágil com JAVA
VRaptor - Um Framework MVC Web para desenvolvimento ágil com JAVAVRaptor - Um Framework MVC Web para desenvolvimento ágil com JAVA
VRaptor - Um Framework MVC Web para desenvolvimento ágil com JAVAYelken Heckman Ferreira Gonzales
 

Mais procurados (20)

JSF com Primefaces
JSF com PrimefacesJSF com Primefaces
JSF com Primefaces
 
Jsf com hibernate, spring security e maven
Jsf com hibernate, spring security e mavenJsf com hibernate, spring security e maven
Jsf com hibernate, spring security e maven
 
Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem DorPlay Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
 
Dominando Jsf E Facelets Utilizando Spring 2.5, Hibernate E Jpa
Dominando Jsf E Facelets Utilizando Spring 2.5, Hibernate E JpaDominando Jsf E Facelets Utilizando Spring 2.5, Hibernate E Jpa
Dominando Jsf E Facelets Utilizando Spring 2.5, Hibernate E Jpa
 
Desenvolvimento web em java com JSP e Servlets
Desenvolvimento web em java com JSP e ServletsDesenvolvimento web em java com JSP e Servlets
Desenvolvimento web em java com JSP e Servlets
 
Apresentação jsf 2.0
Apresentação jsf 2.0Apresentação jsf 2.0
Apresentação jsf 2.0
 
JSF 2 e Primefaces - 4º Encontro Mensal do Gojava
JSF 2 e Primefaces - 4º Encontro Mensal do GojavaJSF 2 e Primefaces - 4º Encontro Mensal do Gojava
JSF 2 e Primefaces - 4º Encontro Mensal do Gojava
 
JavaFX 1.2
JavaFX 1.2JavaFX 1.2
JavaFX 1.2
 
Desenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHPDesenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHP
 
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
 
Construindo aplicações web java com netbeans
Construindo aplicações web java com netbeansConstruindo aplicações web java com netbeans
Construindo aplicações web java com netbeans
 
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrões
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrõesMC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrões
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrões
 
Apresentação jsf 1_2
Apresentação jsf 1_2Apresentação jsf 1_2
Apresentação jsf 1_2
 
Framework web 02 - 2016
Framework web 02 - 2016Framework web 02 - 2016
Framework web 02 - 2016
 
JSP - Java Serves Pages
JSP - Java Serves PagesJSP - Java Serves Pages
JSP - Java Serves Pages
 
Prime Faces
Prime FacesPrime Faces
Prime Faces
 
Arquitetura do Framework Spring
Arquitetura do Framework SpringArquitetura do Framework Spring
Arquitetura do Framework Spring
 
Servlets e JSP
Servlets e JSPServlets e JSP
Servlets e JSP
 
Java Web 1 Introducao
Java Web 1 IntroducaoJava Web 1 Introducao
Java Web 1 Introducao
 
VRaptor - Um Framework MVC Web para desenvolvimento ágil com JAVA
VRaptor - Um Framework MVC Web para desenvolvimento ágil com JAVAVRaptor - Um Framework MVC Web para desenvolvimento ágil com JAVA
VRaptor - Um Framework MVC Web para desenvolvimento ágil com JAVA
 

Destaque

Desenvolvimento Web com JSF
Desenvolvimento Web com JSFDesenvolvimento Web com JSF
Desenvolvimento Web com JSFDalton Valadares
 
Caelum java-testes-jsf-web-services-design-patterns-fj22
Caelum java-testes-jsf-web-services-design-patterns-fj22Caelum java-testes-jsf-web-services-design-patterns-fj22
Caelum java-testes-jsf-web-services-design-patterns-fj22Moisés Moura
 
Aplicações Web com JSF e JPA
Aplicações Web com JSF e JPAAplicações Web com JSF e JPA
Aplicações Web com JSF e JPATotem Treinamentos
 
Test-Driven Development - Introdução ao método de construção de software guia...
Test-Driven Development - Introdução ao método de construção de software guia...Test-Driven Development - Introdução ao método de construção de software guia...
Test-Driven Development - Introdução ao método de construção de software guia...Thiago Faria de Andrade
 
Programação modular - Ferramenta para rotular seções de imagens e realizar bu...
Programação modular - Ferramenta para rotular seções de imagens e realizar bu...Programação modular - Ferramenta para rotular seções de imagens e realizar bu...
Programação modular - Ferramenta para rotular seções de imagens e realizar bu...Rodrigo Ferreira
 
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 - 2018André Luiz Forchesatto
 
Desenvolvendo Produtos Com Java EE
Desenvolvendo Produtos Com Java EEDesenvolvendo Produtos Com Java EE
Desenvolvendo Produtos Com Java EEelliando dias
 
Curso Java Web (JAVA, JSF, JPA)
Curso Java Web (JAVA, JSF, JPA)Curso Java Web (JAVA, JSF, JPA)
Curso Java Web (JAVA, JSF, JPA)Marcos Batista
 
Graficos com PrimeFaces
Graficos com PrimeFacesGraficos com PrimeFaces
Graficos com PrimeFacesBruno Paulino
 
Projeto e Implementação de Software Utilizando Padrões
Projeto e Implementação de Software Utilizando PadrõesProjeto e Implementação de Software Utilizando Padrões
Projeto e Implementação de Software Utilizando PadrõesAntonio Passos
 
Bibliotecas de interface rica no jsf 2
Bibliotecas de interface rica no jsf 2Bibliotecas de interface rica no jsf 2
Bibliotecas de interface rica no jsf 2Pablo Nóbrega
 
Samir Mamude - Sistemas Comerciais Java EE
Samir Mamude - Sistemas Comerciais Java EESamir Mamude - Sistemas Comerciais Java EE
Samir Mamude - Sistemas Comerciais Java EESamir Mamude
 
11601快訊新聞五則
11601快訊新聞五則11601快訊新聞五則
11601快訊新聞五則beelinelmn
 
UtilizandoJSF_no_Desenvolvimento_de_aplicacoes_web_by_Thales_Batista_de_Melo
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
 

Destaque (20)

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
 
Caelum java-testes-jsf-web-services-design-patterns-fj22
Caelum java-testes-jsf-web-services-design-patterns-fj22Caelum java-testes-jsf-web-services-design-patterns-fj22
Caelum java-testes-jsf-web-services-design-patterns-fj22
 
Apostila jsf
Apostila jsfApostila jsf
Apostila jsf
 
Aplicações Web com JSF e JPA
Aplicações Web com JSF e JPAAplicações Web com JSF e JPA
Aplicações Web com JSF e JPA
 
Test-Driven Development - Introdução ao método de construção de software guia...
Test-Driven Development - Introdução ao método de construção de software guia...Test-Driven Development - Introdução ao método de construção de software guia...
Test-Driven Development - Introdução ao método de construção de software guia...
 
Programação modular - Ferramenta para rotular seções de imagens e realizar bu...
Programação modular - Ferramenta para rotular seções de imagens e realizar bu...Programação modular - Ferramenta para rotular seções de imagens e realizar bu...
Programação modular - Ferramenta para rotular seções de imagens e realizar bu...
 
Integração Java EE e VoIP
Integração Java EE e VoIPIntegração Java EE e VoIP
Integração Java EE e VoIP
 
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
 
Apresentando jsf
Apresentando jsfApresentando jsf
Apresentando jsf
 
Desenvolvendo Produtos Com Java EE
Desenvolvendo Produtos Com Java EEDesenvolvendo Produtos Com Java EE
Desenvolvendo Produtos Com Java EE
 
Curso Java Web (JAVA, JSF, JPA)
Curso Java Web (JAVA, JSF, JPA)Curso Java Web (JAVA, JSF, JPA)
Curso Java Web (JAVA, JSF, JPA)
 
Graficos com PrimeFaces
Graficos com PrimeFacesGraficos com PrimeFaces
Graficos com PrimeFaces
 
Spring Capitulo 06
Spring Capitulo 06Spring Capitulo 06
Spring Capitulo 06
 
Projeto e Implementação de Software Utilizando Padrões
Projeto e Implementação de Software Utilizando PadrõesProjeto e Implementação de Software Utilizando Padrões
Projeto e Implementação de Software Utilizando Padrões
 
Bibliotecas de interface rica no jsf 2
Bibliotecas de interface rica no jsf 2Bibliotecas de interface rica no jsf 2
Bibliotecas de interface rica no jsf 2
 
Samir Mamude - Sistemas Comerciais Java EE
Samir Mamude - Sistemas Comerciais Java EESamir Mamude - Sistemas Comerciais Java EE
Samir Mamude - Sistemas Comerciais Java EE
 
Tutorial JSF 2.0 (2012)
Tutorial JSF 2.0 (2012)Tutorial JSF 2.0 (2012)
Tutorial JSF 2.0 (2012)
 
11601快訊新聞五則
11601快訊新聞五則11601快訊新聞五則
11601快訊新聞五則
 
UtilizandoJSF_no_Desenvolvimento_de_aplicacoes_web_by_Thales_Batista_de_Melo
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
 

Semelhante a JSF - JavaServer Faces

Desafios de um desenvolvedor JSF
Desafios de um desenvolvedor JSFDesafios de um desenvolvedor JSF
Desafios de um desenvolvedor JSFRafael Ponte
 
O que move a web atualmente?
O que move a web atualmente?O que move a web atualmente?
O que move a web atualmente?Fabio Janiszevski
 
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
 
Algaworks ebook-java-ee-7-com-jsf-primefaces-e-cdi-2a-edicao-20150228
Algaworks ebook-java-ee-7-com-jsf-primefaces-e-cdi-2a-edicao-20150228Algaworks ebook-java-ee-7-com-jsf-primefaces-e-cdi-2a-edicao-20150228
Algaworks ebook-java-ee-7-com-jsf-primefaces-e-cdi-2a-edicao-20150228MoisesInacio
 
Desenvolva uma app Java web em poucos passos, com o Forge
Desenvolva uma app Java web em poucos passos, com o ForgeDesenvolva uma app Java web em poucos passos, com o Forge
Desenvolva uma app Java web em poucos passos, com o ForgeEder Magalhães
 
O futuro do elephante: as promessas do php para 2019
O futuro do elephante: as promessas do php para 2019O futuro do elephante: as promessas do php para 2019
O futuro do elephante: as promessas do php para 2019Cassio Santos
 
Navegando em um mar de siglas do mundo java
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 javaAndrei Tognolo
 
PHP Turbinado com CodeIgniter - Conisli 2011
PHP Turbinado com CodeIgniter - Conisli 2011PHP Turbinado com CodeIgniter - Conisli 2011
PHP Turbinado com CodeIgniter - Conisli 2011Evaldo Junior
 
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.js
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.jsJava script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.js
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.jsVinicius Reis
 
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3André Luiz Forchesatto
 
WordCampBH 2015 - O mínimo essencial para o bom desempenho do seu projeto em ...
WordCampBH 2015 - O mínimo essencial para o bom desempenho do seu projeto em ...WordCampBH 2015 - O mínimo essencial para o bom desempenho do seu projeto em ...
WordCampBH 2015 - O mínimo essencial para o bom desempenho do seu projeto em ...Sergio Costa
 
Sistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias WebSistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias WebElenilson Vieira
 
JSF2 ScrumToys SestInfo 2010
JSF2 ScrumToys SestInfo 2010JSF2 ScrumToys SestInfo 2010
JSF2 ScrumToys SestInfo 2010Eder Magalhães
 
Apache Wicket derruba o padrão JSF
Apache Wicket derruba o padrão JSFApache Wicket derruba o padrão JSF
Apache Wicket derruba o padrão JSFBruno Borges
 
Anatomia do JSF – JavaServer Faces
Anatomia do JSF – JavaServer FacesAnatomia do JSF – JavaServer Faces
Anatomia do JSF – JavaServer Facescejug
 
JavaFX: A nova biblioteca gráfica da plataforma Java
JavaFX: A nova biblioteca gráfica da plataforma JavaJavaFX: A nova biblioteca gráfica da plataforma Java
JavaFX: A nova biblioteca gráfica da plataforma JavajesuinoPower
 

Semelhante a JSF - JavaServer Faces (20)

Lab
LabLab
Lab
 
Desafios de um desenvolvedor JSF
Desafios de um desenvolvedor JSFDesafios de um desenvolvedor JSF
Desafios de um desenvolvedor JSF
 
O que move a web atualmente?
O que move a web atualmente?O que move a web atualmente?
O que move a web atualmente?
 
Java Web Fácil com VRaptor
Java Web Fácil com VRaptorJava Web Fácil com VRaptor
Java Web Fácil com VRaptor
 
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
 
Java: Por onde começar nos dias de hoje?
Java: Por onde começar nos dias de hoje?Java: Por onde começar nos dias de hoje?
Java: Por onde começar nos dias de hoje?
 
Algaworks ebook-java-ee-7-com-jsf-primefaces-e-cdi-2a-edicao-20150228
Algaworks ebook-java-ee-7-com-jsf-primefaces-e-cdi-2a-edicao-20150228Algaworks ebook-java-ee-7-com-jsf-primefaces-e-cdi-2a-edicao-20150228
Algaworks ebook-java-ee-7-com-jsf-primefaces-e-cdi-2a-edicao-20150228
 
Desenvolva uma app Java web em poucos passos, com o Forge
Desenvolva uma app Java web em poucos passos, com o ForgeDesenvolva uma app Java web em poucos passos, com o Forge
Desenvolva uma app Java web em poucos passos, com o Forge
 
O futuro do elephante: as promessas do php para 2019
O futuro do elephante: as promessas do php para 2019O futuro do elephante: as promessas do php para 2019
O futuro do elephante: as promessas do php para 2019
 
Navegando em um mar de siglas do mundo java
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
 
PHP Turbinado com CodeIgniter - Conisli 2011
PHP Turbinado com CodeIgniter - Conisli 2011PHP Turbinado com CodeIgniter - Conisli 2011
PHP Turbinado com CodeIgniter - Conisli 2011
 
Começando errado com php
Começando errado com phpComeçando errado com php
Começando errado com php
 
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.js
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.jsJava script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.js
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.js
 
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
 
WordCampBH 2015 - O mínimo essencial para o bom desempenho do seu projeto em ...
WordCampBH 2015 - O mínimo essencial para o bom desempenho do seu projeto em ...WordCampBH 2015 - O mínimo essencial para o bom desempenho do seu projeto em ...
WordCampBH 2015 - O mínimo essencial para o bom desempenho do seu projeto em ...
 
Sistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias WebSistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias Web
 
JSF2 ScrumToys SestInfo 2010
JSF2 ScrumToys SestInfo 2010JSF2 ScrumToys SestInfo 2010
JSF2 ScrumToys SestInfo 2010
 
Apache Wicket derruba o padrão JSF
Apache Wicket derruba o padrão JSFApache Wicket derruba o padrão JSF
Apache Wicket derruba o padrão JSF
 
Anatomia do JSF – JavaServer Faces
Anatomia do JSF – JavaServer FacesAnatomia do JSF – JavaServer Faces
Anatomia do JSF – JavaServer Faces
 
JavaFX: A nova biblioteca gráfica da plataforma Java
JavaFX: A nova biblioteca gráfica da plataforma JavaJavaFX: A nova biblioteca gráfica da plataforma Java
JavaFX: A nova biblioteca gráfica da plataforma Java
 

JSF - JavaServer Faces

  • 1. JSF JavaServer Faces Francisco Ernesto Teixeira - fco.ernesto@gmail.com
  • 2. Quem Nordestino dali de Recife, colega de vocês do curso de Sistemas de Informação. Botou os pés pra rua há 16 anos, tem 12 fora de Casa e 3 anos curtindo BSB. Conheceu o Java (?) em 97 com os applets (?) quando ainda não havia o Flash.
  • 3. Um pouco de história Século passado, Web, CGI, Servlet, JSP, MVC, Struts... Enfim JavaServer Faces!!!
  • 4. Explique-me O JSF é uma tecnologia, que: ● Usa boas práticas ● Tem o MVC na veia!!! ● Como qualquer tecnologia, requer bom senso em seu uso
  • 7. O que é que tem nele? ● Um conjunto de APIs para componentes de UI ● Gerenciamento de estado, controle de eventos, validação de entradas ● É uma biblioteca, coloca juntinho do Tomcat, Weblogic, Glassfish, JBoss...
  • 8. Existem tantos outros ● Leve, flexível e extremamente prático ● Toda IDE possui ● Eu gosto do NetBeans, mas o Eclipse também tem ● Reuso bem “facinho” ● Requisições AJAX bem organizado, você não precisa mexer diretamente
  • 9. Entendo algumas coisas ● No HTML, temos as TAGs ● No JSF também temos as TAGs ● O HTML é um “tio” do JSF ● No JSF existem TAGs diferentes, mas vamos aprender a gostar deles ● A mágica acontece no Servidor, especificamente no FacesServlet
  • 10. Então... HTML JSF head h:head body h:body form h:form div h:panelGroup label h:outputLabel input[type=”hidden”] h:inputHidden input[type=”text”] h:inputText - f:convertDateTime select h:selectOneMenu option f:selectItem button h:commandButton clique me uma opção
  • 11. Continuando... HTML JSF table h:dataTable td h:column th f:facet name=”header” a h:commandLink - h:outputText - f:setPropertyActionList ener value=”” target=”” sou uma âncora
  • 12. Quem usa? ● Tramita, TCE-PB ● Ministério Público, Judiciários, Procuradorias ● Vai trabalhar na Oi? JSF ● Matéria de Concurso
  • 13. Problemas no mercado ● Falta mão de obra especializada ● Os problemas são simples, as necessidades são muitas
  • 14. Voltando para a BR Vamos fazer um simples CRUD com o modelo:
  • 15. Sim, e...? ● Como já disse que gosto do NetBeans, vou usar o NetBeans... mas podem usar o Eclipse se preferir ● Para agilizar, usaremos o Apache Tomcat que vem nele, Hibernate e uma instância do MySQL
  • 16. Só isso? Sim!!! E para facilitar lhes dou o fluxo das telas, diagrama da classe principal, diagrama dos pacotes e só não pego na mãozinha porque vocês já podem caminhar sozinhos!!!
  • 17. Fluxo de Telas essa tela é da listagem
  • 20. O pulo do gatinho
  • 21. Erro 404 ● Precisa ser feitos ajustes no Hibernate para funcionar direito com o MySQL ● Está havendo erro de acentos na hora que insere uma Pessoa (somente no Tomcat)
  • 22. Erro 404 - Hibernate Precisamos adicionar no hibernate.cfg.xml: <!-- Enable Hibernate's automatic session context management --> <property name="current_session_context_class">thread</property> <!-- DONE: Unknown entity: modelo.entidade.Pessoa --> <mapping class="modelo.entidade.Pessoa" />
  • 23. Erro 404 - Acentos O Tomcat vem com ISO8859-1, hoje devemos sempre usar UTF-8. Corrigimos isso com a criação de um filtro src/java/util/filtro/EncodeFilter.java. Não vamos nos adentrar nele, no projeto que vocês possuem em mãos ele já existe. Podem usar e abusar à vontade!
  • 24. Modo Turbo O JSF não para por aí. Existem outras bibliotecas que “turbinam” a sua capacidade. Dentre eles, os mais conhecidos: RichFaces - http://www.jboss.org/richfaces ICEFaces - http://www.icesoft.org/ PrimeFaces - http://primefaces.org/
  • 25. Comparativo Fonte: http://www.mastertheboss.com/richfaces/primefaces-vs-richfaces-vs-icefaces/ Vantagens Desvantagens ● Biblioteca JSF madura e amplamente usada ● Possui maior integração com o servidor ● Boa performance ● Pouquíssimos componentes disponíveis, entretanto você pode usar o material de desenvolvimento (SDK) para criar novos ● Documentação poderia ser melhor detalhada ● Renderização única "Direct-2-DOM" ● Grande variedade de componentes baseados no servidor ● Maior variedade de documentos e tutoriais, entretanto quase tudo requer registro ● Parece ser o de menor performance, ao menos comparando o dataTable ● Consiste da maior quantidade de incidentes críticos abertos ● Gigantesca coleção de componentes baseados no levíssimo jQuery ● Simples de usar e documentação prática ● Aparenta ser a biblioteca mais rápida ● Os tópicos dos desenvolvedores dizem: Primefaces ● O mais novo do grupo, então possívelmente menos maduro que o RichFaces e o IceFaces ● Mais centrado no cliente, possui menores melhorias no núcleo do JSF que o outros dois
  • 27. Exemplos Muitos exemplos para brincar e fazer a melhor escolha de acordo com sua necessidade (lembre-se que o PrimeFaces tem maior busca e previsão): http://showcase.richfaces.org/ http://icefaces-showcase.icesoft.org/ http://www.primefaces.org/showcase/