SlideShare une entreprise Scribd logo
1  sur  8
Télécharger pour lire hors ligne
2/3/2011




                                                     Camada de Visão
                                                     Camada de Controle



                      Prof. Italberto F. Dantas
                         italberto@gmail.com




Um servlet controlador chamado FacesServlet          Fornece taglibs para exibir a interface com o
◦ Configurado no arquivo web.xml
                          web.xml                    usuário através de:
                                                     ◦ Um conjunto de componentes
◦ Não é editável pelo desenvolvedor
                                                     ◦ Uma API padronizada para acesso e manipulação de dados
Um arquivo de configuração XML chamado                 da camada de controle
faces-config.
faces-config.xml                                     Podemos usar pelo menos duas tecnologias
◦ Registrara beans, formas de navegação              de visão:
◦ JSF 2.0 minimizou a necessidade de seu uso         ◦ JSP
Manipuladores de ações: managed beans                ◦ Facelets
◦ Fazem acesso à camada de modelo
◦ Seus métodos devolvem strings para que o
  FacesServlet faça a navegação: redirecionamentos




                                                                                                                      1
2/3/2011




•   Análoga à EL JSP 2.0
     – Forma de uso: #{identificador}
                                                                 Um formulário é requisitado
•   Pode ser usada em páginas e também no faces-config.xml       ◦ Um managed bean é instanciado (caso não
    para injeção de dependência                                   exista), por padrão, no escopo do request
•   Permite acesso simplificado às propriedades de um bean:
                                                                 ◦ Tag Handlers colaboram uns com os outros para
     – #{agendaBean.contatos}, #{agendaBean.contato.nome},
•   Permite "executar" métodos também:                            formar uma árvore de componentes
     – #{loginControlador.autenticar},                           ◦ Os componentes são renderizados e preenchidos
       #{palpiteControlador.gerarNovoNumero,
                                                                   com dados de um managed bean
•   Similaridades com JSP EL:
     – Permite acesso a objetos implícitos de escopo: session,   ◦ A página codificada é então enviado ao cliente.
       request, application
     – Acesso simples a coleções
     – Suporte aos operadores básicos (or, and, eq, lt, gt...)




    O formulário é enviado                                       O método de ação é executado
    ◦ A priori, os dados são enviados para a própria             ◦ Esse método é invocado por componentes como
      página                                                       commandButton ou commandLink
    ◦ As propriedades dos managed beans são                      O método ação retorna uma “condição”
      preenchidas com o conteúdo dos componentes                 ◦ A string pode ser um mapeamento faces-
                                                                                                   faces-
    ◦ Caso haja mudança na navegação, o usuário é                  config.
                                                                   config.xml ou o nome de uma página (sem a
      encaminhado para outra página                                extensão) faces-config.xml
                                                                             faces-config.
                                                                 Uma página de resultados é exibida




                                                                                                                           2
2/3/2011




                                                 O FacesServlet extrai da requisição o "view
                                                 ID", que é determinado pelo nome da página.
                                                 Uma árvore de componentes é mantida pelo
                                                 framework representando o estado da visão:
                                                 O estado pode ser mantido no cliente ou no
                                                 servidor:
                                                 ◦ Cliente: menor consumo de memória e maior tráfego de
                                                   rede
                                                 ◦ Servidor: maior consumo de memória e menor tráfego de
                                                   rede)




Cada componente deverá recuperar seu             Cada componente (propriedade “value”) será
estado corrente.                                 validado de acordo com as regras de
Os valores dos componentes são extraídos do      validação definidas na aplicação
request, cookies, sessão ou do “header” da       As regras de validação são definidas através
                                                 dos “validators”
requisição
                                                 Caso haja problemas de validação mensagens
Essa atribuição é feita utilizando o conversor   de erro são adicionadas no FacesContext e o
definido para o componente                       componente é marcado como inválido
                                                 Se um componente for marcado como
                                                 inválido, o JSF pula para a fase “Render
                                                 Response”




                                                                                                                 3
2/3/2011




Os valores dos componentes são passados      O FacesServlet executa chama o método do
para as propriedades associadas aos          Managed Bean associado no submit/link,
Managed Beans                                Todos os valores já foram validados e
Caso seja necessário, os Managed Beans são   carregados nas fases anteriores
instanciados e mantidos no seu respectivo    Métodos ou outcomes carregados na
escopo                                       propriedade “action dos componentes
                                                          action”
                                                          action
Pode haver erro na conversão, fazendo com
que o JSF dispare um erro de tempo de
execução




Monta-se a resposta onde cada componente     No cabeçalho de cada componente visual da
é processado e o resultado é unificado aos   página deve ser declarado as taglibs que
demais                                       serão usadas naquele trecho de código.
A visão então é exibida ao usuário




                                                                                               4
2/3/2011




h:inputText                                    Tarefa obrigatória para qualquer aplicação
h:commandButton                                Alguns tipos de validação:
h:commandLink                                  ◦ Campos obrigatórios preenchidos
h:dataTable                                    ◦ Formatos e tamanhos de tipos básicos como real e
                                                 inteiro corretos
h:panelGrid                                    ◦ Tipos de dados mais específicos como dígitos
h:outputLink                                     verificadores (CPF, CNPJ, Matrícula) corretamente
h:outputLabel                                    gerados/fornecidos
h:form




Para campos obrigatórios, o JSF provê o        Podemos escrever métodos ou classes
atributo required                              próprios para validar os dados dos
Para validações básicas (domínio e tamanho),   formulários.
o JSF possui validadores pré-definidos         Há duas maneiras de implementar validação
                                               personalizada
                                               Criar uma classe e implementar a interface
                                                      javax.faces.validator.Validator

                                               Usar um método do managed bean para
                                               validação




                                                                                                           5
2/3/2011




Usando o método do managed bean
Caso seja escolhido essa forma de validação,
o método deve ter a seguinte assinatura.




                                               JavaBeans Validation (Bean Validation) é um
                                               novo modelo de validação parte da
                                               plataforma Java EE6
                                               Suportado através de anotações.




                                                                                                   6
2/3/2011




                                                         Anotação          Descrição                   Exemplo
                                               @AssertFalse         O valor do campo deve      @AssertFalse boolean
                                                                    ser falso.                 isUsuario;
                                               @AssertTrue          O valor do campo deve      @AssertTrue boolean
                                                                    ser verdadeiro.            isAtivo;
                                               @Digits              O valor deve estar entre   @Digits(integer=6,
                                                                    uma faixa de valores.      fraction=2) BigDecimal
                                                                                               price;
                                               @Pattern             O valor deve reconhecido @Pattern(regexp=“.+@.+
                                                                    por uma expressão        .[a-z]+") String email;
                                                                    regular.
                                               @NotNull             O valor do campo não       @NotNull String nome;
                                                                    pode ser nulo.




Existem três tipos de escopo de execução nas        Application
aplicações web:                                     ◦ O bean que é definido como sendo
◦ Application                                         @ApplicationScopped poderá ser visto por toda a
◦ Session                                             apliação da mesma forma. Ou seja visto por vários
◦ Request                                             usuários do mesmo sistema em máquinas
                                                      diferentes.
O JSF 2 definiu mais um tipo                        ◦ Não é recomendável em formulários.
◦ View




                                                                                                                            7
2/3/2011




Session                                               Request
◦ Um managed bean definido como @SessionScopped       ◦ Este é o escopo padrão utilizado pelo JSF.
  poderá ser visto durante toda a execução do         ◦ Um managed definido como @RequestScopped terá
  sistema por um único usuário (enquanto sua sessão     seus dádos válidos apenas durante a comuncação
  não expira).                                          entre o cliente (browser) e o servidor (GlassFish,
◦ É usado para guardar informações úteis ao usuário     TomCat, etc)
  durante a execução do sistema.




                                                                                                                   8

Contenu connexe

En vedette

Informe 2011 Egarsat SP
Informe 2011 Egarsat SPInforme 2011 Egarsat SP
Informe 2011 Egarsat SPEgarsat SP
 
Tarea ntc
Tarea ntc Tarea ntc
Tarea ntc namekatz
 
Registro obracpb
Registro obracpbRegistro obracpb
Registro obracpbcpmeco
 
Apresentação institucional maio de 2012
Apresentação institucional   maio de 2012Apresentação institucional   maio de 2012
Apresentação institucional maio de 2012brproperties
 
Enmiendas a los presupuestos de 2013
Enmiendas a los presupuestos de 2013Enmiendas a los presupuestos de 2013
Enmiendas a los presupuestos de 2013UPyD Getafe
 
20 07-2010 apresentação institucional
20 07-2010 apresentação institucional20 07-2010 apresentação institucional
20 07-2010 apresentação institucionalbrproperties
 
Colegiado escolar - Caderno de Orientação
Colegiado escolar - Caderno de OrientaçãoColegiado escolar - Caderno de Orientação
Colegiado escolar - Caderno de OrientaçãoNajara Nascimento
 
Apresentação 2T12
Apresentação 2T12Apresentação 2T12
Apresentação 2T12brproperties
 
Boas mensagens vão para a alma
Boas mensagens vão para a almaBoas mensagens vão para a alma
Boas mensagens vão para a almaWillian Daviny
 
Apresentação reunião apimec 2012
Apresentação   reunião apimec 2012Apresentação   reunião apimec 2012
Apresentação reunião apimec 2012brproperties
 
Proposición conjunta contra la homofobia
Proposición conjunta contra la homofobiaProposición conjunta contra la homofobia
Proposición conjunta contra la homofobiaUPyD Getafe
 
Release de Resultados 3T10
Release de Resultados 3T10Release de Resultados 3T10
Release de Resultados 3T10brproperties
 
Desarrollo del ser humano pubertad a la vejez
Desarrollo del ser humano pubertad a la vejezDesarrollo del ser humano pubertad a la vejez
Desarrollo del ser humano pubertad a la vejezpulga_kp
 

En vedette (20)

Informe 2011 Egarsat SP
Informe 2011 Egarsat SPInforme 2011 Egarsat SP
Informe 2011 Egarsat SP
 
Tarea ntc
Tarea ntc Tarea ntc
Tarea ntc
 
recetas
recetasrecetas
recetas
 
El Examén
El ExaménEl Examén
El Examén
 
Registro obracpb
Registro obracpbRegistro obracpb
Registro obracpb
 
Apresentação institucional maio de 2012
Apresentação institucional   maio de 2012Apresentação institucional   maio de 2012
Apresentação institucional maio de 2012
 
El celular
El celularEl celular
El celular
 
Enmiendas a los presupuestos de 2013
Enmiendas a los presupuestos de 2013Enmiendas a los presupuestos de 2013
Enmiendas a los presupuestos de 2013
 
20 07-2010 apresentação institucional
20 07-2010 apresentação institucional20 07-2010 apresentação institucional
20 07-2010 apresentação institucional
 
Colegiado escolar - Caderno de Orientação
Colegiado escolar - Caderno de OrientaçãoColegiado escolar - Caderno de Orientação
Colegiado escolar - Caderno de Orientação
 
Veríssimo
VeríssimoVeríssimo
Veríssimo
 
Apresentação 2T12
Apresentação 2T12Apresentação 2T12
Apresentação 2T12
 
Presentacion apa 2010
Presentacion apa 2010Presentacion apa 2010
Presentacion apa 2010
 
Diapos de salud 3
Diapos de salud 3Diapos de salud 3
Diapos de salud 3
 
Boas mensagens vão para a alma
Boas mensagens vão para a almaBoas mensagens vão para a alma
Boas mensagens vão para a alma
 
Apresentação reunião apimec 2012
Apresentação   reunião apimec 2012Apresentação   reunião apimec 2012
Apresentação reunião apimec 2012
 
LEAFLET_RETAIL
LEAFLET_RETAILLEAFLET_RETAIL
LEAFLET_RETAIL
 
Proposición conjunta contra la homofobia
Proposición conjunta contra la homofobiaProposición conjunta contra la homofobia
Proposición conjunta contra la homofobia
 
Release de Resultados 3T10
Release de Resultados 3T10Release de Resultados 3T10
Release de Resultados 3T10
 
Desarrollo del ser humano pubertad a la vejez
Desarrollo del ser humano pubertad a la vejezDesarrollo del ser humano pubertad a la vejez
Desarrollo del ser humano pubertad a la vejez
 

Similaire à Fundamentos jsf

Jsf – Java Sever Faces
Jsf – Java Sever FacesJsf – Java Sever Faces
Jsf – Java Sever Facesbielgott
 
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.
 
JavaServer Faces Produtividade em Desenvolvimento
JavaServer Faces Produtividade em DesenvolvimentoJavaServer Faces Produtividade em Desenvolvimento
JavaServer Faces Produtividade em DesenvolvimentoEduardo Bregaida
 
Produtividade com JavaServer Faces
Produtividade com JavaServer FacesProdutividade com JavaServer Faces
Produtividade com JavaServer FacesEduardo Bregaida
 
WEB 2 - Aula 01 - 02.08
WEB 2 - Aula 01 - 02.08WEB 2 - Aula 01 - 02.08
WEB 2 - Aula 01 - 02.08Gilson Silva
 
5 técnicas para acelerar o desenvolvimento e reduzir Bugs em aplicações WEB
5 técnicas para acelerar o desenvolvimento e reduzir Bugs em aplicações WEB5 técnicas para acelerar o desenvolvimento e reduzir Bugs em aplicações WEB
5 técnicas para acelerar o desenvolvimento e reduzir Bugs em aplicações WEBRafael Chinelato Del Nero
 
Resumo Anotacoes Certificacao SCBCD 5
Resumo Anotacoes Certificacao SCBCD 5Resumo Anotacoes Certificacao SCBCD 5
Resumo Anotacoes Certificacao SCBCD 5Gilberto Holms
 
Apresentação jsf 2.0
Apresentação jsf 2.0Apresentação jsf 2.0
Apresentação jsf 2.0Paulo Neto
 
Minicurso Java Server Faces
Minicurso Java Server FacesMinicurso Java Server Faces
Minicurso Java Server FacesJoão Longo
 
Padrão Arquitetural MVC e suas aplicações para WEB
Padrão Arquitetural MVC e suas aplicações para WEBPadrão Arquitetural MVC e suas aplicações para WEB
Padrão Arquitetural MVC e suas aplicações para WEBRafael França
 
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)Adriano Teixeira de Souza
 
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
 

Similaire à Fundamentos jsf (20)

Jsf – Java Sever Faces
Jsf – Java Sever FacesJsf – Java Sever Faces
Jsf – Java Sever Faces
 
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.
 
JavaServer Faces Produtividade em Desenvolvimento
JavaServer Faces Produtividade em DesenvolvimentoJavaServer Faces Produtividade em Desenvolvimento
JavaServer Faces Produtividade em Desenvolvimento
 
Produtividade com JavaServer Faces
Produtividade com JavaServer FacesProdutividade com JavaServer Faces
Produtividade com JavaServer Faces
 
WEB 2 - Aula 01 - 02.08
WEB 2 - Aula 01 - 02.08WEB 2 - Aula 01 - 02.08
WEB 2 - Aula 01 - 02.08
 
5 técnicas para acelerar o desenvolvimento e reduzir Bugs em aplicações WEB
5 técnicas para acelerar o desenvolvimento e reduzir Bugs em aplicações WEB5 técnicas para acelerar o desenvolvimento e reduzir Bugs em aplicações WEB
5 técnicas para acelerar o desenvolvimento e reduzir Bugs em aplicações WEB
 
Jsf 2 slideshare
Jsf 2 slideshareJsf 2 slideshare
Jsf 2 slideshare
 
Resumo Anotacoes Certificacao SCBCD 5
Resumo Anotacoes Certificacao SCBCD 5Resumo Anotacoes Certificacao SCBCD 5
Resumo Anotacoes Certificacao SCBCD 5
 
Apresentação jsf 2.0
Apresentação jsf 2.0Apresentação jsf 2.0
Apresentação jsf 2.0
 
Minicurso Java Server Faces
Minicurso Java Server FacesMinicurso Java Server Faces
Minicurso Java Server Faces
 
EJB
EJBEJB
EJB
 
Apache Struts
Apache StrutsApache Struts
Apache Struts
 
Padrão Arquitetural MVC e suas aplicações para WEB
Padrão Arquitetural MVC e suas aplicações para WEBPadrão Arquitetural MVC e suas aplicações para WEB
Padrão Arquitetural MVC e suas aplicações para WEB
 
Jsf
JsfJsf
Jsf
 
Framework Struts
Framework StrutsFramework Struts
Framework Struts
 
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
 
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
 
Tutorial struts
Tutorial strutsTutorial struts
Tutorial struts
 
JSP com tags padrão
JSP com tags padrãoJSP com tags padrão
JSP com tags padrão
 
Curso jsf
Curso jsfCurso jsf
Curso jsf
 

Fundamentos jsf

  • 1. 2/3/2011 Camada de Visão Camada de Controle Prof. Italberto F. Dantas italberto@gmail.com Um servlet controlador chamado FacesServlet Fornece taglibs para exibir a interface com o ◦ Configurado no arquivo web.xml web.xml usuário através de: ◦ Um conjunto de componentes ◦ Não é editável pelo desenvolvedor ◦ Uma API padronizada para acesso e manipulação de dados Um arquivo de configuração XML chamado da camada de controle faces-config. faces-config.xml Podemos usar pelo menos duas tecnologias ◦ Registrara beans, formas de navegação de visão: ◦ JSF 2.0 minimizou a necessidade de seu uso ◦ JSP Manipuladores de ações: managed beans ◦ Facelets ◦ Fazem acesso à camada de modelo ◦ Seus métodos devolvem strings para que o FacesServlet faça a navegação: redirecionamentos 1
  • 2. 2/3/2011 • Análoga à EL JSP 2.0 – Forma de uso: #{identificador} Um formulário é requisitado • Pode ser usada em páginas e também no faces-config.xml ◦ Um managed bean é instanciado (caso não para injeção de dependência exista), por padrão, no escopo do request • Permite acesso simplificado às propriedades de um bean: ◦ Tag Handlers colaboram uns com os outros para – #{agendaBean.contatos}, #{agendaBean.contato.nome}, • Permite "executar" métodos também: formar uma árvore de componentes – #{loginControlador.autenticar}, ◦ Os componentes são renderizados e preenchidos #{palpiteControlador.gerarNovoNumero, com dados de um managed bean • Similaridades com JSP EL: – Permite acesso a objetos implícitos de escopo: session, ◦ A página codificada é então enviado ao cliente. request, application – Acesso simples a coleções – Suporte aos operadores básicos (or, and, eq, lt, gt...) O formulário é enviado O método de ação é executado ◦ A priori, os dados são enviados para a própria ◦ Esse método é invocado por componentes como página commandButton ou commandLink ◦ As propriedades dos managed beans são O método ação retorna uma “condição” preenchidas com o conteúdo dos componentes ◦ A string pode ser um mapeamento faces- faces- ◦ Caso haja mudança na navegação, o usuário é config. config.xml ou o nome de uma página (sem a encaminhado para outra página extensão) faces-config.xml faces-config. Uma página de resultados é exibida 2
  • 3. 2/3/2011 O FacesServlet extrai da requisição o "view ID", que é determinado pelo nome da página. Uma árvore de componentes é mantida pelo framework representando o estado da visão: O estado pode ser mantido no cliente ou no servidor: ◦ Cliente: menor consumo de memória e maior tráfego de rede ◦ Servidor: maior consumo de memória e menor tráfego de rede) Cada componente deverá recuperar seu Cada componente (propriedade “value”) será estado corrente. validado de acordo com as regras de Os valores dos componentes são extraídos do validação definidas na aplicação request, cookies, sessão ou do “header” da As regras de validação são definidas através dos “validators” requisição Caso haja problemas de validação mensagens Essa atribuição é feita utilizando o conversor de erro são adicionadas no FacesContext e o definido para o componente componente é marcado como inválido Se um componente for marcado como inválido, o JSF pula para a fase “Render Response” 3
  • 4. 2/3/2011 Os valores dos componentes são passados O FacesServlet executa chama o método do para as propriedades associadas aos Managed Bean associado no submit/link, Managed Beans Todos os valores já foram validados e Caso seja necessário, os Managed Beans são carregados nas fases anteriores instanciados e mantidos no seu respectivo Métodos ou outcomes carregados na escopo propriedade “action dos componentes action” action Pode haver erro na conversão, fazendo com que o JSF dispare um erro de tempo de execução Monta-se a resposta onde cada componente No cabeçalho de cada componente visual da é processado e o resultado é unificado aos página deve ser declarado as taglibs que demais serão usadas naquele trecho de código. A visão então é exibida ao usuário 4
  • 5. 2/3/2011 h:inputText Tarefa obrigatória para qualquer aplicação h:commandButton Alguns tipos de validação: h:commandLink ◦ Campos obrigatórios preenchidos h:dataTable ◦ Formatos e tamanhos de tipos básicos como real e inteiro corretos h:panelGrid ◦ Tipos de dados mais específicos como dígitos h:outputLink verificadores (CPF, CNPJ, Matrícula) corretamente h:outputLabel gerados/fornecidos h:form Para campos obrigatórios, o JSF provê o Podemos escrever métodos ou classes atributo required próprios para validar os dados dos Para validações básicas (domínio e tamanho), formulários. o JSF possui validadores pré-definidos Há duas maneiras de implementar validação personalizada Criar uma classe e implementar a interface javax.faces.validator.Validator Usar um método do managed bean para validação 5
  • 6. 2/3/2011 Usando o método do managed bean Caso seja escolhido essa forma de validação, o método deve ter a seguinte assinatura. JavaBeans Validation (Bean Validation) é um novo modelo de validação parte da plataforma Java EE6 Suportado através de anotações. 6
  • 7. 2/3/2011 Anotação Descrição Exemplo @AssertFalse O valor do campo deve @AssertFalse boolean ser falso. isUsuario; @AssertTrue O valor do campo deve @AssertTrue boolean ser verdadeiro. isAtivo; @Digits O valor deve estar entre @Digits(integer=6, uma faixa de valores. fraction=2) BigDecimal price; @Pattern O valor deve reconhecido @Pattern(regexp=“.+@.+ por uma expressão .[a-z]+") String email; regular. @NotNull O valor do campo não @NotNull String nome; pode ser nulo. Existem três tipos de escopo de execução nas Application aplicações web: ◦ O bean que é definido como sendo ◦ Application @ApplicationScopped poderá ser visto por toda a ◦ Session apliação da mesma forma. Ou seja visto por vários ◦ Request usuários do mesmo sistema em máquinas diferentes. O JSF 2 definiu mais um tipo ◦ Não é recomendável em formulários. ◦ View 7
  • 8. 2/3/2011 Session Request ◦ Um managed bean definido como @SessionScopped ◦ Este é o escopo padrão utilizado pelo JSF. poderá ser visto durante toda a execução do ◦ Um managed definido como @RequestScopped terá sistema por um único usuário (enquanto sua sessão seus dádos válidos apenas durante a comuncação não expira). entre o cliente (browser) e o servidor (GlassFish, ◦ É usado para guardar informações úteis ao usuário TomCat, etc) durante a execução do sistema. 8