SlideShare uma empresa Scribd logo
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 Primefaces
Fabio 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 maven
Leandro 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 Dor
Allyson 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 Jpa
Ana 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 Servlets
Igo Coelho
 
Apresentação jsf 2.0
Apresentação jsf 2.0Apresentação jsf 2.0
Apresentação jsf 2.0
Paulo 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 Gojava
Frederico Maia Arantes
 
JavaFX 1.2
JavaFX 1.2JavaFX 1.2
JavaFX 1.2
Raphael Marques
 
Desenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHPDesenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHP
Sérgio Vilar
 
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
André Luiz Forchesatto
 
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
Sliedesharessbarbosa
 
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
Rodrigo Cândido da Silva
 
Apresentação jsf 1_2
Apresentação jsf 1_2Apresentação jsf 1_2
Apresentação jsf 1_2
Bruno de Andrade
 
Framework web 02 - 2016
Framework web 02 - 2016Framework web 02 - 2016
Framework web 02 - 2016
André Luiz Forchesatto
 
JSP - Java Serves Pages
JSP - Java Serves PagesJSP - Java Serves Pages
JSP - Java Serves Pages
Amanda Luz
 
Prime Faces
Prime FacesPrime Faces
Prime Faces
Bruno Garcia
 
Arquitetura do Framework Spring
Arquitetura do Framework SpringArquitetura do Framework Spring
Arquitetura do Framework Spring
Alexsandro Oliveira
 
Servlets e JSP
Servlets e JSPServlets e JSP
Servlets e JSP
Daniel Brandão
 
Java Web 1 Introducao
Java Web 1 IntroducaoJava Web 1 Introducao
Java Web 1 Introducao
Eduardo Mendes
 
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
Yelken 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 JSF
Dalton Valadares
 
Framework web 3 - JSF + Spring boot
Framework web 3 - JSF + Spring bootFramework web 3 - JSF + Spring boot
Framework web 3 - JSF + Spring boot
André Luiz Forchesatto
 
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
Moisés Moura
 
Apostila jsf
Apostila jsfApostila jsf
Apostila jsf
Fernanda Diego
 
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
Totem 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
 
Integração Java EE e VoIP
Integração Java EE e VoIPIntegração Java EE e VoIP
Integração Java EE e VoIP
Thiago Faria de Andrade
 
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
André Luiz Forchesatto
 
Apresentando jsf
Apresentando jsfApresentando jsf
Apresentando jsf
Alberto Souza
 
Desenvolvendo Produtos Com Java EE
Desenvolvendo Produtos Com Java EEDesenvolvendo Produtos Com Java EE
Desenvolvendo Produtos Com Java EE
elliando 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 PrimeFaces
Bruno Paulino
 
Spring Capitulo 06
Spring Capitulo 06Spring Capitulo 06
Spring Capitulo 06
Diego Pacheco
 
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
Antonio 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 2
Pablo Nóbrega
 
Samir Mamude - Sistemas Comerciais Java EE
Samir Mamude - Sistemas Comerciais Java EESamir Mamude - Sistemas Comerciais Java EE
Samir Mamude - Sistemas Comerciais Java EE
Samir Mamude
 
Tutorial JSF 2.0 (2012)
Tutorial JSF 2.0 (2012)Tutorial JSF 2.0 (2012)
Tutorial JSF 2.0 (2012)
Helder da Rocha
 
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_Melo
thalesboss
 

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

Lab
LabLab
Desafios de um desenvolvedor JSF
Desafios de um desenvolvedor JSFDesafios de um desenvolvedor JSF
Desafios de um desenvolvedor JSF
Rafael 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
 
Java Web Fácil com VRaptor
Java Web Fácil com VRaptorJava Web Fácil com VRaptor
Java Web Fácil com VRaptor
Frederico Maia Arantes
 
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
Eduardo Bregaida
 
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?
Thiago Mazarão Maltempi
 
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
MoisesInacio
 
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
Eder 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 2019
Cassio 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 java
Andrei Tognolo
 
PHP Turbinado com CodeIgniter - Conisli 2011
PHP Turbinado com CodeIgniter - Conisli 2011PHP Turbinado com CodeIgniter - Conisli 2011
PHP Turbinado com CodeIgniter - Conisli 2011
Evaldo Junior
 
Começando errado com php
Começando errado com phpComeçando errado com php
Começando errado com php
Marcelo Felipe Santiago Diniz
 
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
Vinicius 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 CSS3
André 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 Web
Elenilson Vieira
 
JSF2 ScrumToys SestInfo 2010
JSF2 ScrumToys SestInfo 2010JSF2 ScrumToys SestInfo 2010
JSF2 ScrumToys SestInfo 2010
Eder 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 JSF
Bruno Borges
 
Anatomia do JSF – JavaServer Faces
Anatomia do JSF – JavaServer FacesAnatomia do JSF – JavaServer Faces
Anatomia do JSF – JavaServer Faces
cejug
 
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
jesuinoPower
 

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/