SlideShare una empresa de Scribd logo
1 de 58
Descargar para leer sin conexión
JavaServer Faces e
Primefaces

Palestrante:

Jean Paulo da Silva
JavaServer Faces e Primefaces
                         INTRODUÇÃO


•   Complexidade das aplicações web
•   Enorme quantidade de recursos pra se gerenciar
•   Aplicações corporativas
•   Complexidade e desordem nos códigos, dificultando a
    manutenção
•   Pouca ou nenhuma dinamicidade e reusabilidade, diminuindo
    a produtividade
•   Problemas na utilização de lógicas de negócio mais
    complexas
•   Desempenho
•   Segurança
JavaServer Faces
                       INTRODUÇÃO


•   Framework para construção de interfaces web em Java
•   Implementação de referência da especificação JSR-314
•   Possui um conjunto de componentes pré-fabricados
•   Programação orientada a eventos
•   Permite a união entre apresentação visual, lógica da
    aplicação e lógicas de negócio
JavaServer Faces
   ARQUITETURA
JavaServer Faces
                    CONFIGURAÇÃO


• Configuração do servidor (Tomcat)
• Criação do projeto: New/Dynamic Web Project
JavaServer Faces
                    CONFIGURAÇÃO


• Configuração do arquivo web.xml
• Inclusão das bibliotecas (WebContent)
                                 Classes




                               Páginas/CSS/JavaScript/Imagens




                                 Bibliotecas



                                 Configurações
JavaServer Faces
                    CARACTERÍSTICAS

•   Arquitetura MVC
•   RAD
•   ManagedBeans
•   Componentes UI
•   Validators
•   Converters
•   Eventos e Listeners
•   Controle de Navegação
•   Mensagens
•   Internacionalização
JavaServer Faces
                    CARACTERÍSTICAS

•   Arquitetura MVC
•   RAD
•   ManagedBeans
•   Componentes UI
•   Validators
•   Converters
•   Eventos e Listeners
•   Controle de Navegação
•   Mensagens
•   Internacionalização
Arquitetura MVC
Model View Controller
Arquitetura MVC
Model View Controller
JavaServer Faces
                    CARACTERÍSTICAS

•   Arquitetura MVC
•   RAD
•   ManagedBeans
•   Os componentes UI se mantém sincronizados com
    objetos java do lado servidor
•   Validators
•   Converters
•   Eventos e Listeners
•   Controle de Navegação
•   Mensagens
•   Internacionalização
RAD
               Rapid Application Development


Características:
• Arquitetura fundamental de componentes
• Arquitetura extensível para geração de componentes de
  terceiros
• Um conjunto de componentes padrão
• Infra-estrutura de aplicação
• É uma ferramenta
JavaServer Faces
                    CARACTERÍSTICAS

•   Arquitetura MVC
•   RAD
•   ManagedBeans
•   Componentes UI
•   Validators
•   Converters
•   Eventos e Listeners
•   Controle de Navegação
•   Mensagens
•   Internacionalização
ManagedBeans


• Coleta inputs dos usuários nos componentes de
  formulários
• Manipulação dos componentes de forma dinâmica
• Intermediar a comumicação entre as páginas
  (componentes JSF) e o modelo
• Trabalham com objetos do modelo para executar lógica
  de negócio
• Manipulação de eventos de interface
• JSF 2.0 - @ManagedBean
• JSF 1.x – faces-config.xml
ManagedBeans
                           ESCOPOS

• @RequestScoped – Escopo de requisição
  – O managed bean é instanciado e permanece disponível durante
    o tempo da requisição HTTP
  – Recomendado quando o interesse é a economia de recursos do
    servidor
  – Quando os dados não precisam ser mantidos de uma requisição
    pra outra
• @SessionScoped – Escopo de sessão
  – O managed bean é instanciado no momento de uma requisição
    e só finaliza quando a sessão é finalizada
  – Recomendado quando o interesse é guardar os estados dos
    objetos a medida em que se vai realizando a navegação, pois os
    mesmos são mantidos mesmo em caso de uma nova requisição
  – Exemplo: Carrinho de compras
ManagedBeans
                            ESCOPOS

• @ApplicationScoped – Escopo de aplicação
   – O managed bean é instanciado no momento em que a aplicação
     é iniciada no servidor com o atributo eager setado em true, caso
     contrário, é instanciado na primeira requisição feita ao bean
   – Recomendado em caso de disponibilização de serviços que
     precisam estar sempre disponíveis
• @ViewScoped – Escopo de visualização
   – O managed bean é instanciado no momento em que é feita uma
     requisição para uma página que use seus objetos e é destruído
     quando os seus objetos não são mais utilizados pela página
   – Meio termo entre @RequestScoped e @SessionScoped
   – Recomendado em caso de utilização de aplicações que utilizem
     AJAX, ou seja, que atualizam parte da página ou toda ela
ManagedBeans
                            ESCOPOS

• @NoneScoped – Nenhum escopo
  – Os objetos do managed bean não são instanciados pela
    camada de visão, mas podem ser utilizados por outros managed
    beans conforme a necessidade
  – Recomendado quando os objetos ou métodos não tem ligação
    direta com alguma página
• @CustomScoped – Escopo personalizado
  – Escopo definido conforme a necessidade do desenvolvedor,
    implementado em uma classe auxiliar que define as
    características do escopo como ciclo de vida, acessibilidade,
    estrutura de dados e outros
ManagedBeans
   EXEMPLO
JavaServer Faces
                    CARACTERÍSTICAS


•   Arquitetura MVC
•   RAD
•   ManagedBeans
•   ComponentesUI
•   Validators
•   Converters
•   Eventos e Listeners
•   Controle de Navegação
•   Mensagens
•   Internacionalização
Componentes UI


•   Componentes que gerenciam a interação com o usuário
•   São armazenados numa árvore no servidor (view)
•   Tags interpretadas para apresentação (html)
•   Tag Libraries h e f
     • h: tags de componentes que combinam tags HTML
       com objetos UIComponent definidos na
       especificação JSF
     • f : tags com ações independentes do HTML
Componentes UI


• Sujeito a estilização (css)
• Interação com funções JavaScript e com objetos e
  métodos do lado servidor (ManagedBean)
Componentes UI
                  EXEMPLOS

• Componentes:
   • <h:body/> <h:head/> <h:form/>
   • <h:ouptutText value="Texto estático" />
   • <h:ouptutText
         value="#{contatoBean.txtDinamico}"/>
   • <h:ouptutLabel /> //atributo for
   • <h:graphicImage value="/images/img1.jpg"
         width="400" height="150"/>
   • <h:panelGrid columns="3"
Componentes UI
                  EXEMPLOS

• Entrada de dados:
   • <h:inputText id="itNome"
        value="#{contatoBean.nome}"
        size="40" maxlength="40"
        style="font-size: 15px;"/>
   • <h:inputHidden/>
   • <h:inputTextArea cols="150"
        rows="4" />
   • <h:inputSecret />
Componentes UI
                      EXEMPLOS

• Selects:
   • <h:selectBooleanCheckbox value="true" />
   • <h:selectOneRadio value="#{contatoBean.tipo}">
       <f:selectItem id="item1" itemLabel="Amigo"
                  itemValue="Amigo" />
       <f:selectItem id="item2" itemLabel="Conhecido"
                  itemValue="Conhecido" />
       <f:selectItem id="item3" itemLabel="Trabalho"
                  itemValue="Trabalho" />
      <f:selectItem id="item4" itemLabel="Família"
                  itemValue="Família" />
     </h:selectOneRadio>
Componentes UI
                     EXEMPLOS

• Selects:
   • <h:selectOneListBox value="#{contatoBean.tipo}">
       <f:selectItem id="item1" itemLabel="Amigo"
                  itemValue="Amigo" />
       <f:selectItem id="item2" itemLabel="Conhecido"
                  itemValue="Conhecido" />
       <f:selectItem id="item3" itemLabel="Trabalho"
                  itemValue="Trabalho" />
      <f:selectItem id="item4" itemLabel="Família"
                  itemValue="Família" />
     </h:selectOneListBox>
Componentes UI
                      EXEMPLOS

• Selects:
   • <h:selectOneMenu value="#{contatoBean.tipo}">
       <f:selectItem id="item1" itemLabel="Amigo"
                  itemValue="Amigo" />
       <f:selectItem id="item2" itemLabel="Conhecido"
                  itemValue="Conhecido" />
       <f:selectItem id="item3" itemLabel="Trabalho"
                  itemValue="Trabalho" />
      <f:selectItem id="item4" itemLabel="Família"
                  itemValue="Família" />
     </h:selectOneMenu>
Componentes UI
                      EXEMPLOS

• Tabela:
   • <h:dataTable value="#{contatoBean.contatos}"
            var="con" border="1">
        <h:column>
            <f:facet name="header">Nome</f:facet>
            <h:outputText value="#{con.nome}" />
        </h:column>
        <h:column>
            <f:facet name="header">Telefone</f:facet>
            <h:outputText value="#{con.telefone}"/>
        </h:column>
      </h:dataTable>
Componentes UI
                         EXEMPLOS

• Actions e Listeners:
   • <h:commandButton value="Executar“
            action="#{contatoBean.executar}"
            alt="Executa uma ação"
            image="../images/executar.png"/>
   • <h:commandLink value="Executar“
            action="#{contatoBean.executar}"/>
   • <h:outputLink value="www.b3informatica.com">
            B3 Informática
      </h:outputLink>
   • <h:button outcome="page.xhtml" value="Contato"/>
   • <h:link outcome="page.xhtml" value="Contato"/>
JavaServer Faces
                    CARACTERÍSTICAS


•   Arquitetura MVC
•   RAD
•   ManagedBeans
•   ComponentesUI
•   Validators
•   Converters
•   Eventos e Listeners
•   Controle de Navegação
•   Mensagens
•   Internacionalização
Validators


• Validadores padrão e validadores customizados
• Impedem as ações e exibem mensagens
• Atributo “required”
   • Ex.: <h:inputText id="itNome"
              value="#{contatoBean.nome}"
              required="true"
              requiredMessage="Deu erro!"/>
Validators


• Validadores implícitos (padrão)
• Ex.:
   • <f:validateLength maximum="10" />
   • <f:validateDoubleRange
            minimum="10" maximum="100" />
   • <f:validateLongRange
              minimum="10" maximum="100" />
   • <f:validateRegex pattern=" ^[0-9]" />
Validators


• Validadores customizados:
   • implements javax.faces.validator.Validator
   • public void validate(FacesContext context,
                         UIComponent component,
                         Object value)
Validators
JavaServer Faces
                    CARACTERÍSTICAS


•   Arquitetura MVC
•   RAD
•   ManagedBeans
•   ComponentesUI
•   Validators
•   Converters
•   Eventos e Listeners
•   Controle de Navegação
•   Mensagens
•   Internacionalização
Converters


• Conversão de valores de entrada e de saída
• Conversores implícitos para tipos primitivos
• Disparam mensagens que podem ser configuradas
  (converterMessage)



• Impedem as ações
• Conversores padrão e customizados
Converters


• Conversores padrão:
Converters


• Conversores padrão:
Converters


• Conversores customizados:
   • implements Converter
   • @FacesConverter
   • Métodos:
      • public Object getAsObject(FacesContext context,
            UIComponent component, String valor);
      • public String getAsString(FacesContext context,
            UIComponent component, String valor);
JavaServer Faces
                    CARACTERÍSTICAS


•   Arquitetura MVC
•   RAD
•   ManagedBeans
•   ComponentesUI
•   Validators
•   Converters
•   Eventos e Listeners
•   Controle de Navegação
•   Mensagens
•   Internacionalização
Eventos e Listeners


• Eventos
   • Atributo action aponta para um método no bean
   • Retorno void ou String apontando para próxima
     página
   • Exemplo:
Eventos e Listeners


• Listeners
   • Retorno void e parâmetro referente ao listener
      utilizado
   • Exemplo:
JavaServer Faces
                   CARACTERÍSTICAS


•   Arquitetura MVC
•   RAD
•   ManagedBeans
•   ComponentesUI
•   Validators
•   Converters
•   Eventos e Listeners
•   Controle de Navegação
•   Mensagens
•   Internacionalização
Controle de Navegação


• JSF 1.x
   • faces-config.xml
   • navigation-rule
• JSF 2
   • Retorno dos métodos através de chamadas
     declaradas no atributo action
   • Não há necessidade de retorno das extensões
   • ?faces-redirect=true para redirecionamento de url
Controle de Navegação


• Exemplos:
JavaServer Faces
                    CARACTERÍSTICAS


•   Arquitetura MVC
•   RAD
•   ManagedBeans
•   ComponentesUI
•   Validators
•   Converters
•   Eventos e Listeners
•   Controle de Navegação
•   Mensagens
•   Internacionalização
Mensagens


• Globais:
   • <h:messages showDetail=“true”/>
• Locais:
   • <h:message for=“id_do_componente”/>
• Disparadas no managedBean:
   • FacesMessage msg =
            new FacesMessage(mensagem, detalhes);
   • FacesContext.getCurrentInstance().addMessage(
           clientId, msg);
Mensagens


• FacesMessage msg = new FacesMessage(severity,
                    mensagem, detalhes);
• Severity = Tipos de Mensagem
   • FacesMessage.SEVERITY_ERROR
   • FacesMessage.SEVERITY_FATAL
   • FacesMessage.SEVERITY_INFO
   • FacesMessage.SEVERITY_WARN
JavaServer Faces
                    CARACTERÍSTICAS


•   Arquitetura MVC
•   RAD
•   ManagedBeans
•   ComponentesUI
•   Validators
•   Converters
•   Eventos e Listeners
•   Controle de Navegação
•   Mensagens
•   Internacionalização
Internacionalização


• O JavaServer Faces oferece suporte à
  internacionalização, possibilitando que a aplicação seja
  visível em vários idiomas
• Configuração:
   • faces-config.xml (global)
   • <f:loadBundle/> (local)
Internacionalização
                    PASSO A PASSO


• Criação do arquivo nomeArquivo_abreviacao.properties
   • Exemplos:
Internacionalização
                     PASSO A PASSO


• faces-config.xml




• teste
Primefaces
                     INTRODUÇÃO


• Biblioteca de componentes para JSF de código aberto
• Possui um rico conjunto com mais de 100 componentes
  de interface
• Suporte nativo a Ajax
• Mais de 30 temas pré-definidos, oferecendo a
  possibilidade de criação de temas
• Documentação de fácil acesso e demonstração do uso
  dos componentes disponíveis no site
  http://www.primefaces.org/showcase
Primefaces
 SHOWCASE
Primefaces
                      INTRODUÇÃO


• Download do jar
  http://www.primefaces.org/downloads.html
• WebContent/WEB-INF/lib




• Utilização da tag
Primefaces
                        INTRODUÇÃO


• Ajax – atributo update
• Sintaxe: update="id_form1:id_comp1 id_form2:id_comp2
                   id_formn:id_compn"
• Exemplo:




• Atributo ajax=“false” (padrão ajax=“true”)
Primefaces
                      COMPONENTES


• Showcase - http://www.primefaces.org/showcase
• Alteração de temas:
   • Download jar - http://www.primefaces.org/themes.html
   • WebContent/WEB-INF/lib
   • web.xml
Contato:

Telefone: (45) 3576-7064

E-mail: b3@b3informatica.com

Site: www.b3informatica.com

Más contenido relacionado

La actualidad más candente

Anatomia do JSF, JavaServer Faces
Anatomia do JSF, JavaServer FacesAnatomia do JSF, JavaServer Faces
Anatomia do JSF, JavaServer FacesRafael Ponte
 
JavaServer Faces - Desenvolvendo aplicações web com produtividade
JavaServer Faces - Desenvolvendo aplicações web com produtividadeJavaServer Faces - Desenvolvendo aplicações web com produtividade
JavaServer Faces - Desenvolvendo aplicações web com produtividadeRafael Ponte
 
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
 
Desenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHPDesenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHPSérgio Vilar
 
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e ZendAnálise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e ZendThiago Sinésio
 
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?Anderson Araújo
 
Introdução ao JavaServer Faces
Introdução ao JavaServer FacesIntrodução ao JavaServer Faces
Introdução ao JavaServer FacesWillian Watanabe
 
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
 
Certificacoes java
Certificacoes javaCertificacoes java
Certificacoes javaBruno Garcia
 
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
 
GlassFish e Maven: Java EE sem dor!
GlassFish e Maven: Java EE sem dor!GlassFish e Maven: Java EE sem dor!
GlassFish e Maven: Java EE sem dor!Bruno Borges
 
CakePHP - Aprendendo a fazer o primeiro bolo
CakePHP - Aprendendo a fazer o primeiro boloCakePHP - Aprendendo a fazer o primeiro bolo
CakePHP - Aprendendo a fazer o primeiro boloelliando dias
 
GlassFish, Maven, Cloud e o futuro do Java EE
GlassFish, Maven, Cloud e o futuro do Java EEGlassFish, Maven, Cloud e o futuro do Java EE
GlassFish, Maven, Cloud e o futuro do Java EEBruno Borges
 
Curso Java (Parte 8) Web Service REST
Curso Java (Parte 8) Web Service RESTCurso Java (Parte 8) Web Service REST
Curso Java (Parte 8) Web Service RESTMario Sergio
 

La actualidad más candente (20)

Anatomia do JSF, JavaServer Faces
Anatomia do JSF, JavaServer FacesAnatomia do JSF, JavaServer Faces
Anatomia do JSF, JavaServer Faces
 
JSF - JavaServer Faces
JSF - JavaServer FacesJSF - JavaServer Faces
JSF - JavaServer Faces
 
JavaServer Faces - Desenvolvendo aplicações web com produtividade
JavaServer Faces - Desenvolvendo aplicações web com produtividadeJavaServer Faces - Desenvolvendo aplicações web com produtividade
JavaServer Faces - Desenvolvendo aplicações web com produtividade
 
Jsf
JsfJsf
Jsf
 
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
 
Desenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHPDesenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHP
 
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e ZendAnálise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
 
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?
 
Introdução ao JavaServer Faces
Introdução ao JavaServer FacesIntrodução ao JavaServer Faces
Introdução ao JavaServer Faces
 
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
 
Certificacoes java
Certificacoes javaCertificacoes java
Certificacoes java
 
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
 
GlassFish e Maven: Java EE sem dor!
GlassFish e Maven: Java EE sem dor!GlassFish e Maven: Java EE sem dor!
GlassFish e Maven: Java EE sem dor!
 
JavaFX 1.2
JavaFX 1.2JavaFX 1.2
JavaFX 1.2
 
CakePHP - Aprendendo a fazer o primeiro bolo
CakePHP - Aprendendo a fazer o primeiro boloCakePHP - Aprendendo a fazer o primeiro bolo
CakePHP - Aprendendo a fazer o primeiro bolo
 
GlassFish, Maven, Cloud e o futuro do Java EE
GlassFish, Maven, Cloud e o futuro do Java EEGlassFish, Maven, Cloud e o futuro do Java EE
GlassFish, Maven, Cloud e o futuro do Java EE
 
Curso jsf
Curso jsfCurso jsf
Curso jsf
 
Curso Java (Parte 8) Web Service REST
Curso Java (Parte 8) Web Service RESTCurso Java (Parte 8) Web Service REST
Curso Java (Parte 8) Web Service REST
 
Tutorial JSF 2.0 (2012)
Tutorial JSF 2.0 (2012)Tutorial JSF 2.0 (2012)
Tutorial JSF 2.0 (2012)
 

Destacado

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
 
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
 
Aula 01 - UML e Padrões de Projeto
Aula 01 - UML e Padrões de ProjetoAula 01 - UML e Padrões de Projeto
Aula 01 - UML e Padrões de ProjetoVinícius de Paula
 
Persistência Java: Hibernate e JPA
Persistência Java: Hibernate e JPAPersistência Java: Hibernate e JPA
Persistência Java: Hibernate e JPACaelum
 
Apostila Java Web com JSF, JPA e Primefaces
Apostila Java Web com JSF, JPA e PrimefacesApostila Java Web com JSF, JPA e Primefaces
Apostila Java Web com JSF, JPA e PrimefacesRosicleia Frasson
 

Destacado (12)

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)
 
Apresentando jsf
Apresentando jsfApresentando jsf
Apresentando jsf
 
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
 
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
 
Aula 01 - UML e Padrões de Projeto
Aula 01 - UML e Padrões de ProjetoAula 01 - UML e Padrões de Projeto
Aula 01 - UML e Padrões de Projeto
 
Persistência Java: Hibernate e JPA
Persistência Java: Hibernate e JPAPersistência Java: Hibernate e JPA
Persistência Java: Hibernate e JPA
 
Apostila Java Web com JSF, JPA e Primefaces
Apostila Java Web com JSF, JPA e PrimefacesApostila Java Web com JSF, JPA e Primefaces
Apostila Java Web com JSF, JPA e Primefaces
 

Similar a JSF com Primefaces

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.
 
365on Lab Asp.Net MVC Fundamentos 01 Overview
365on Lab Asp.Net MVC Fundamentos 01 Overview365on Lab Asp.Net MVC Fundamentos 01 Overview
365on Lab Asp.Net MVC Fundamentos 01 OverviewAlexsandro Almeida
 
CDI Extensions e DeltaSpike
CDI Extensions e DeltaSpikeCDI Extensions e DeltaSpike
CDI Extensions e DeltaSpikeRafael Benevides
 
Jsf – Java Sever Faces
Jsf – Java Sever FacesJsf – Java Sever Faces
Jsf – Java Sever Facesbielgott
 
Backbone.js nas trincheiras
Backbone.js nas trincheirasBackbone.js nas trincheiras
Backbone.js nas trincheirasLambda 3
 
Desenvolvimento Web com JSF
Desenvolvimento Web com JSFDesenvolvimento Web com JSF
Desenvolvimento Web com JSFDalton Valadares
 
Minicurso Java Server Faces
Minicurso Java Server FacesMinicurso Java Server Faces
Minicurso Java Server FacesJoão Longo
 
Resumo Anotacoes Certificacao OCE WebLogic Portal 10g Developer
Resumo Anotacoes Certificacao OCE WebLogic Portal 10g DeveloperResumo Anotacoes Certificacao OCE WebLogic Portal 10g Developer
Resumo Anotacoes Certificacao OCE WebLogic Portal 10g DeveloperGilberto Holms
 
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
 
SharePoint Deployment
SharePoint DeploymentSharePoint Deployment
SharePoint DeploymentAndré Vala
 
ASP.NET MVC - Alexandre Tarifa
ASP.NET MVC - Alexandre TarifaASP.NET MVC - Alexandre Tarifa
ASP.NET MVC - Alexandre Tarifaguestea329c
 
Lightning components - o que são, quais os seus objectivos e exemplos práticos
Lightning components - o que são, quais os seus objectivos e exemplos práticosLightning components - o que são, quais os seus objectivos e exemplos práticos
Lightning components - o que são, quais os seus objectivos e exemplos práticosDom Digital
 
Spring MVC Framework
Spring MVC FrameworkSpring MVC Framework
Spring MVC Frameworkelliando dias
 
Palest"Tecnologias para Desenvolvimento Baseado em Componentes"
Palest"Tecnologias para Desenvolvimento Baseado em Componentes"Palest"Tecnologias para Desenvolvimento Baseado em Componentes"
Palest"Tecnologias para Desenvolvimento Baseado em Componentes"sbcars
 

Similar a JSF com Primefaces (20)

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.
 
Web 3.0
Web 3.0Web 3.0
Web 3.0
 
365on Lab Asp.Net MVC Fundamentos 01 Overview
365on Lab Asp.Net MVC Fundamentos 01 Overview365on Lab Asp.Net MVC Fundamentos 01 Overview
365on Lab Asp.Net MVC Fundamentos 01 Overview
 
CDI Extensions e DeltaSpike
CDI Extensions e DeltaSpikeCDI Extensions e DeltaSpike
CDI Extensions e DeltaSpike
 
Palestra ASP.NET MVC
Palestra ASP.NET MVCPalestra ASP.NET MVC
Palestra ASP.NET MVC
 
Jsf – Java Sever Faces
Jsf – Java Sever FacesJsf – Java Sever Faces
Jsf – Java Sever Faces
 
Curso AngularJS - Parte 1
Curso AngularJS - Parte 1Curso AngularJS - Parte 1
Curso AngularJS - Parte 1
 
Backbone.js nas trincheiras
Backbone.js nas trincheirasBackbone.js nas trincheiras
Backbone.js nas trincheiras
 
Desenvolvimento Web com JSF
Desenvolvimento Web com JSFDesenvolvimento Web com JSF
Desenvolvimento Web com JSF
 
Minicurso Java Server Faces
Minicurso Java Server FacesMinicurso Java Server Faces
Minicurso Java Server Faces
 
Resumo Anotacoes Certificacao OCE WebLogic Portal 10g Developer
Resumo Anotacoes Certificacao OCE WebLogic Portal 10g DeveloperResumo Anotacoes Certificacao OCE WebLogic Portal 10g Developer
Resumo Anotacoes Certificacao OCE WebLogic Portal 10g Developer
 
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
 
JQuery Mobile
JQuery MobileJQuery Mobile
JQuery Mobile
 
SharePoint Deployment
SharePoint DeploymentSharePoint Deployment
SharePoint Deployment
 
Aula 1 apresentação
Aula 1   apresentaçãoAula 1   apresentação
Aula 1 apresentação
 
ASP.NET MVC - Alexandre Tarifa
ASP.NET MVC - Alexandre TarifaASP.NET MVC - Alexandre Tarifa
ASP.NET MVC - Alexandre Tarifa
 
ASP.NET MVC
ASP.NET MVCASP.NET MVC
ASP.NET MVC
 
Lightning components - o que são, quais os seus objectivos e exemplos práticos
Lightning components - o que são, quais os seus objectivos e exemplos práticosLightning components - o que são, quais os seus objectivos e exemplos práticos
Lightning components - o que são, quais os seus objectivos e exemplos práticos
 
Spring MVC Framework
Spring MVC FrameworkSpring MVC Framework
Spring MVC Framework
 
Palest"Tecnologias para Desenvolvimento Baseado em Componentes"
Palest"Tecnologias para Desenvolvimento Baseado em Componentes"Palest"Tecnologias para Desenvolvimento Baseado em Componentes"
Palest"Tecnologias para Desenvolvimento Baseado em Componentes"
 

JSF com Primefaces

  • 1.
  • 3. JavaServer Faces e Primefaces INTRODUÇÃO • Complexidade das aplicações web • Enorme quantidade de recursos pra se gerenciar • Aplicações corporativas • Complexidade e desordem nos códigos, dificultando a manutenção • Pouca ou nenhuma dinamicidade e reusabilidade, diminuindo a produtividade • Problemas na utilização de lógicas de negócio mais complexas • Desempenho • Segurança
  • 4. JavaServer Faces INTRODUÇÃO • Framework para construção de interfaces web em Java • Implementação de referência da especificação JSR-314 • Possui um conjunto de componentes pré-fabricados • Programação orientada a eventos • Permite a união entre apresentação visual, lógica da aplicação e lógicas de negócio
  • 5. JavaServer Faces ARQUITETURA
  • 6. JavaServer Faces CONFIGURAÇÃO • Configuração do servidor (Tomcat) • Criação do projeto: New/Dynamic Web Project
  • 7. JavaServer Faces CONFIGURAÇÃO • Configuração do arquivo web.xml • Inclusão das bibliotecas (WebContent) Classes Páginas/CSS/JavaScript/Imagens Bibliotecas Configurações
  • 8. JavaServer Faces CARACTERÍSTICAS • Arquitetura MVC • RAD • ManagedBeans • Componentes UI • Validators • Converters • Eventos e Listeners • Controle de Navegação • Mensagens • Internacionalização
  • 9. JavaServer Faces CARACTERÍSTICAS • Arquitetura MVC • RAD • ManagedBeans • Componentes UI • Validators • Converters • Eventos e Listeners • Controle de Navegação • Mensagens • Internacionalização
  • 12. JavaServer Faces CARACTERÍSTICAS • Arquitetura MVC • RAD • ManagedBeans • Os componentes UI se mantém sincronizados com objetos java do lado servidor • Validators • Converters • Eventos e Listeners • Controle de Navegação • Mensagens • Internacionalização
  • 13. RAD Rapid Application Development Características: • Arquitetura fundamental de componentes • Arquitetura extensível para geração de componentes de terceiros • Um conjunto de componentes padrão • Infra-estrutura de aplicação • É uma ferramenta
  • 14. JavaServer Faces CARACTERÍSTICAS • Arquitetura MVC • RAD • ManagedBeans • Componentes UI • Validators • Converters • Eventos e Listeners • Controle de Navegação • Mensagens • Internacionalização
  • 15. ManagedBeans • Coleta inputs dos usuários nos componentes de formulários • Manipulação dos componentes de forma dinâmica • Intermediar a comumicação entre as páginas (componentes JSF) e o modelo • Trabalham com objetos do modelo para executar lógica de negócio • Manipulação de eventos de interface • JSF 2.0 - @ManagedBean • JSF 1.x – faces-config.xml
  • 16. ManagedBeans ESCOPOS • @RequestScoped – Escopo de requisição – O managed bean é instanciado e permanece disponível durante o tempo da requisição HTTP – Recomendado quando o interesse é a economia de recursos do servidor – Quando os dados não precisam ser mantidos de uma requisição pra outra • @SessionScoped – Escopo de sessão – O managed bean é instanciado no momento de uma requisição e só finaliza quando a sessão é finalizada – Recomendado quando o interesse é guardar os estados dos objetos a medida em que se vai realizando a navegação, pois os mesmos são mantidos mesmo em caso de uma nova requisição – Exemplo: Carrinho de compras
  • 17. ManagedBeans ESCOPOS • @ApplicationScoped – Escopo de aplicação – O managed bean é instanciado no momento em que a aplicação é iniciada no servidor com o atributo eager setado em true, caso contrário, é instanciado na primeira requisição feita ao bean – Recomendado em caso de disponibilização de serviços que precisam estar sempre disponíveis • @ViewScoped – Escopo de visualização – O managed bean é instanciado no momento em que é feita uma requisição para uma página que use seus objetos e é destruído quando os seus objetos não são mais utilizados pela página – Meio termo entre @RequestScoped e @SessionScoped – Recomendado em caso de utilização de aplicações que utilizem AJAX, ou seja, que atualizam parte da página ou toda ela
  • 18. ManagedBeans ESCOPOS • @NoneScoped – Nenhum escopo – Os objetos do managed bean não são instanciados pela camada de visão, mas podem ser utilizados por outros managed beans conforme a necessidade – Recomendado quando os objetos ou métodos não tem ligação direta com alguma página • @CustomScoped – Escopo personalizado – Escopo definido conforme a necessidade do desenvolvedor, implementado em uma classe auxiliar que define as características do escopo como ciclo de vida, acessibilidade, estrutura de dados e outros
  • 19. ManagedBeans EXEMPLO
  • 20. JavaServer Faces CARACTERÍSTICAS • Arquitetura MVC • RAD • ManagedBeans • ComponentesUI • Validators • Converters • Eventos e Listeners • Controle de Navegação • Mensagens • Internacionalização
  • 21. Componentes UI • Componentes que gerenciam a interação com o usuário • São armazenados numa árvore no servidor (view) • Tags interpretadas para apresentação (html) • Tag Libraries h e f • h: tags de componentes que combinam tags HTML com objetos UIComponent definidos na especificação JSF • f : tags com ações independentes do HTML
  • 22. Componentes UI • Sujeito a estilização (css) • Interação com funções JavaScript e com objetos e métodos do lado servidor (ManagedBean)
  • 23. Componentes UI EXEMPLOS • Componentes: • <h:body/> <h:head/> <h:form/> • <h:ouptutText value="Texto estático" /> • <h:ouptutText value="#{contatoBean.txtDinamico}"/> • <h:ouptutLabel /> //atributo for • <h:graphicImage value="/images/img1.jpg" width="400" height="150"/> • <h:panelGrid columns="3"
  • 24. Componentes UI EXEMPLOS • Entrada de dados: • <h:inputText id="itNome" value="#{contatoBean.nome}" size="40" maxlength="40" style="font-size: 15px;"/> • <h:inputHidden/> • <h:inputTextArea cols="150" rows="4" /> • <h:inputSecret />
  • 25. Componentes UI EXEMPLOS • Selects: • <h:selectBooleanCheckbox value="true" /> • <h:selectOneRadio value="#{contatoBean.tipo}"> <f:selectItem id="item1" itemLabel="Amigo" itemValue="Amigo" /> <f:selectItem id="item2" itemLabel="Conhecido" itemValue="Conhecido" /> <f:selectItem id="item3" itemLabel="Trabalho" itemValue="Trabalho" /> <f:selectItem id="item4" itemLabel="Família" itemValue="Família" /> </h:selectOneRadio>
  • 26. Componentes UI EXEMPLOS • Selects: • <h:selectOneListBox value="#{contatoBean.tipo}"> <f:selectItem id="item1" itemLabel="Amigo" itemValue="Amigo" /> <f:selectItem id="item2" itemLabel="Conhecido" itemValue="Conhecido" /> <f:selectItem id="item3" itemLabel="Trabalho" itemValue="Trabalho" /> <f:selectItem id="item4" itemLabel="Família" itemValue="Família" /> </h:selectOneListBox>
  • 27. Componentes UI EXEMPLOS • Selects: • <h:selectOneMenu value="#{contatoBean.tipo}"> <f:selectItem id="item1" itemLabel="Amigo" itemValue="Amigo" /> <f:selectItem id="item2" itemLabel="Conhecido" itemValue="Conhecido" /> <f:selectItem id="item3" itemLabel="Trabalho" itemValue="Trabalho" /> <f:selectItem id="item4" itemLabel="Família" itemValue="Família" /> </h:selectOneMenu>
  • 28. Componentes UI EXEMPLOS • Tabela: • <h:dataTable value="#{contatoBean.contatos}" var="con" border="1"> <h:column> <f:facet name="header">Nome</f:facet> <h:outputText value="#{con.nome}" /> </h:column> <h:column> <f:facet name="header">Telefone</f:facet> <h:outputText value="#{con.telefone}"/> </h:column> </h:dataTable>
  • 29. Componentes UI EXEMPLOS • Actions e Listeners: • <h:commandButton value="Executar“ action="#{contatoBean.executar}" alt="Executa uma ação" image="../images/executar.png"/> • <h:commandLink value="Executar“ action="#{contatoBean.executar}"/> • <h:outputLink value="www.b3informatica.com"> B3 Informática </h:outputLink> • <h:button outcome="page.xhtml" value="Contato"/> • <h:link outcome="page.xhtml" value="Contato"/>
  • 30. JavaServer Faces CARACTERÍSTICAS • Arquitetura MVC • RAD • ManagedBeans • ComponentesUI • Validators • Converters • Eventos e Listeners • Controle de Navegação • Mensagens • Internacionalização
  • 31. Validators • Validadores padrão e validadores customizados • Impedem as ações e exibem mensagens • Atributo “required” • Ex.: <h:inputText id="itNome" value="#{contatoBean.nome}" required="true" requiredMessage="Deu erro!"/>
  • 32. Validators • Validadores implícitos (padrão) • Ex.: • <f:validateLength maximum="10" /> • <f:validateDoubleRange minimum="10" maximum="100" /> • <f:validateLongRange minimum="10" maximum="100" /> • <f:validateRegex pattern=" ^[0-9]" />
  • 33. Validators • Validadores customizados: • implements javax.faces.validator.Validator • public void validate(FacesContext context, UIComponent component, Object value)
  • 35. JavaServer Faces CARACTERÍSTICAS • Arquitetura MVC • RAD • ManagedBeans • ComponentesUI • Validators • Converters • Eventos e Listeners • Controle de Navegação • Mensagens • Internacionalização
  • 36. Converters • Conversão de valores de entrada e de saída • Conversores implícitos para tipos primitivos • Disparam mensagens que podem ser configuradas (converterMessage) • Impedem as ações • Conversores padrão e customizados
  • 39. Converters • Conversores customizados: • implements Converter • @FacesConverter • Métodos: • public Object getAsObject(FacesContext context, UIComponent component, String valor); • public String getAsString(FacesContext context, UIComponent component, String valor);
  • 40. JavaServer Faces CARACTERÍSTICAS • Arquitetura MVC • RAD • ManagedBeans • ComponentesUI • Validators • Converters • Eventos e Listeners • Controle de Navegação • Mensagens • Internacionalização
  • 41. Eventos e Listeners • Eventos • Atributo action aponta para um método no bean • Retorno void ou String apontando para próxima página • Exemplo:
  • 42. Eventos e Listeners • Listeners • Retorno void e parâmetro referente ao listener utilizado • Exemplo:
  • 43. JavaServer Faces CARACTERÍSTICAS • Arquitetura MVC • RAD • ManagedBeans • ComponentesUI • Validators • Converters • Eventos e Listeners • Controle de Navegação • Mensagens • Internacionalização
  • 44. Controle de Navegação • JSF 1.x • faces-config.xml • navigation-rule • JSF 2 • Retorno dos métodos através de chamadas declaradas no atributo action • Não há necessidade de retorno das extensões • ?faces-redirect=true para redirecionamento de url
  • 46. JavaServer Faces CARACTERÍSTICAS • Arquitetura MVC • RAD • ManagedBeans • ComponentesUI • Validators • Converters • Eventos e Listeners • Controle de Navegação • Mensagens • Internacionalização
  • 47. Mensagens • Globais: • <h:messages showDetail=“true”/> • Locais: • <h:message for=“id_do_componente”/> • Disparadas no managedBean: • FacesMessage msg = new FacesMessage(mensagem, detalhes); • FacesContext.getCurrentInstance().addMessage( clientId, msg);
  • 48. Mensagens • FacesMessage msg = new FacesMessage(severity, mensagem, detalhes); • Severity = Tipos de Mensagem • FacesMessage.SEVERITY_ERROR • FacesMessage.SEVERITY_FATAL • FacesMessage.SEVERITY_INFO • FacesMessage.SEVERITY_WARN
  • 49. JavaServer Faces CARACTERÍSTICAS • Arquitetura MVC • RAD • ManagedBeans • ComponentesUI • Validators • Converters • Eventos e Listeners • Controle de Navegação • Mensagens • Internacionalização
  • 50. Internacionalização • O JavaServer Faces oferece suporte à internacionalização, possibilitando que a aplicação seja visível em vários idiomas • Configuração: • faces-config.xml (global) • <f:loadBundle/> (local)
  • 51. Internacionalização PASSO A PASSO • Criação do arquivo nomeArquivo_abreviacao.properties • Exemplos:
  • 52. Internacionalização PASSO A PASSO • faces-config.xml • teste
  • 53. Primefaces INTRODUÇÃO • Biblioteca de componentes para JSF de código aberto • Possui um rico conjunto com mais de 100 componentes de interface • Suporte nativo a Ajax • Mais de 30 temas pré-definidos, oferecendo a possibilidade de criação de temas • Documentação de fácil acesso e demonstração do uso dos componentes disponíveis no site http://www.primefaces.org/showcase
  • 55. Primefaces INTRODUÇÃO • Download do jar http://www.primefaces.org/downloads.html • WebContent/WEB-INF/lib • Utilização da tag
  • 56. Primefaces INTRODUÇÃO • Ajax – atributo update • Sintaxe: update="id_form1:id_comp1 id_form2:id_comp2 id_formn:id_compn" • Exemplo: • Atributo ajax=“false” (padrão ajax=“true”)
  • 57. Primefaces COMPONENTES • Showcase - http://www.primefaces.org/showcase • Alteração de temas: • Download jar - http://www.primefaces.org/themes.html • WebContent/WEB-INF/lib • web.xml
  • 58. Contato: Telefone: (45) 3576-7064 E-mail: b3@b3informatica.com Site: www.b3informatica.com