Fundamentos jsf

1,135 views

Published on

Para quem está iniciando em JSF

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,135
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
17
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Fundamentos jsf

  1. 1. 2/3/2011 Camada de Visão Camada de Controle Prof. Italberto F. Dantas italberto@gmail.comUm 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 dadosUm arquivo de configuração XML chamado da camada de controlefaces-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 ◦ JSPManipuladores 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. 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. 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 deOs valores dos componentes são extraídos do validação definidas na aplicaçãorequest, 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 mensagensEssa atribuição é feita utilizando o conversor de erro são adicionadas no FacesContext e odefinido 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. 4. 2/3/2011Os valores dos componentes são passados O FacesServlet executa chama o método dopara as propriedades associadas aos Managed Bean associado no submit/link,Managed Beans Todos os valores já foram validados eCaso seja necessário, os Managed Beans são carregados nas fases anterioresinstanciados e mantidos no seu respectivo Métodos ou outcomes carregados naescopo propriedade “action dos componentes action” actionPode haver erro na conversão, fazendo comque o JSF dispare um erro de tempo deexecuçãoMonta-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 quedemais serão usadas naquele trecho de código.A visão então é exibida ao usuário 4
  5. 5. 2/3/2011h:inputText Tarefa obrigatória para qualquer aplicaçãoh:commandButton Alguns tipos de validação:h:commandLink ◦ Campos obrigatórios preenchidosh:dataTable ◦ Formatos e tamanhos de tipos básicos como real e inteiro corretosh:panelGrid ◦ Tipos de dados mais específicos como dígitosh:outputLink verificadores (CPF, CNPJ, Matrícula) corretamenteh:outputLabel gerados/fornecidosh:formPara campos obrigatórios, o JSF provê o Podemos escrever métodos ou classesatributo required próprios para validar os dados dosPara 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. 6. 2/3/2011Usando o método do managed beanCaso 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. 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 Applicationaplicaçõ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. 8. 2/3/2011Session 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

×