JSF e PrimeFaces Professor: Ricardo Luis dos Santos IFSUL – Campus Sapucaia do Sul © 2015 Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense Campus Sapucaia do Sul Campus Sapucaia do Sul Agenda • Introdução • Desenvolvimento Web • Java Server Faces • Exercício 2 Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense Campus Sapucaia do Sul Introdução • Ao longo dos anos diversas linguagens de programação foram criadas e milhares de aplicações foram implementadas em cada uma destas • Na década de 90 o padrão de desenvolvimento era o de aplicações desktop 3 Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense Campus Sapucaia do Sul Introdução • Cada cliente possui uma cópia integral da aplicação, isto dificulta a atualização • Como a aplicação roda no computador do cliente, a depuração é difícil, pois não há acesso ilimitado • Em geral, problemas de manutenção e gerenciabilidade 4 Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense Campus Sapucaia do Sul Introdução • Com a evolução da Internet e dos padrões para Web (protocolo http e browsers) surgiram as aplicações Web • Clientes simples e leves • Utilizam tecnologias bem padronizadas • Fácil atualização • Fácil manutenção 5 Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense Campus Sapucaia do Sul Desenvolvimento Web 6 Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense Campus Sapucaia do Sul Desenvolvimento Web • Java Server Pages • Construído acima da tecnologia Servlets, capacita os desenvolvedores Web a editar paginas HTML com tags especiais para as porções dinâmicas escritas em Java • Scriptlet é o código escrito entre <% e %>. Esse nome é composto da palavra script (pedaço de código) com o sufixo let, que indica algo pequeno 7 Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense Campus Sapucaia do Sul Desenvolvimento Web • Padrão MVC • Padrão arquitetural que separa a interação que o usuário faz com a informação da representação desta informação • Model armazena dados e notifica os controllers associados quando há uma mudança em seu estado • View gera uma representação dos dados presentes no modelo solicitado • Controller envia comandos para o model para persistir objetos e comandos para a view para alterar a apresentação da informação 8 Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense Campus Sapucaia do Sul Desenvolvimento Web • Padrão MVC • Exemplos de frameworks Web Java que utilizam o padrão MVC • • • • 9 Struts Spring MVC VRaptor JSF Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense Campus Sapucaia do Sul Java Server Faces • JSF é uma tecnologia que permite criar aplicações Java para Web utilizando componentes visuais • O desenvolvedor não precisa se preocupar com Javascript e HTML • Especificação do Java Enterprise Edition (JEE) • Isso significa que existe uma padronização na forma como esta tecnologia deve ser implementada • Todos os frameworks baseados nela funcionam de forma parecida 10 Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense Campus Sapucaia do Sul Java Server Faces • 11 Diversos componentes para podermos utilizar Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense Campus Sapucaia do Sul Java Server Faces • Model • Podemos utilizar as anotações do JPA vistas na disciplina • Pojos simples e leves 12 Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense Campus Sapucaia do Sul Java Server Faces • Managed Bean (Controller) • Define a lógica da aplicação Web • Nele implementaremos métodos para navegação entre páginas, bem como métodos para a interação com os models 13 Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense Campus Sapucaia do Sul Java Server Faces • Managed Bean (Controller) • @ManagedBean • Define que uma classe será um bean gerenciado, ou seja, um controller da nossa aplicação Web • O atributo name dessa anotação define como este bean será referenciado dentro das paginas JSF • Caso não seja definido, este mesmo bean será referenciado usando o nome da classe, com a primeira letra em minúsculo 14 Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense Campus Sapucaia do Sul Java Server Faces • Escopo de um Managed Bean (Controller) • Define o tempo que uma instância do Managed Bean sobrevive durante a execução da aplicação Web • Define o seu ciclo de vida • Momento em que é inicializado e o momento em que ele deixa de existir • @RequestScoped • O managed bean permanece vivo (visível) durante o tempo de vida de uma requisição HTTP. Criado no início da requisição HTTP e destruído quando a resposta HTTP associada a requisição for encerrada 15 Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense Campus Sapucaia do Sul Java Server Faces • Escopo de um Managed Bean (Controller) • @SessionScoped • O managed bean vive durante o tempo em que a sessão HTTP durar. É criada na primeira requisição HTTP e destruída quando a sessão HTTP for invalidada • @ViewScoped • O managed bean permanece vivo enquanto o usuário interagir com a mesma pagina JSF na janela/aba do navegador web. O bean é criado durante uma requisição HTTP e destruído quando o usuário mudar de pagina JSF 16 Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense Campus Sapucaia do Sul Java Server Faces • Escopo de um Managed Bean (Controller) • @ApplicationScoped • O managed bean vive enquanto a aplicação Web durar. É criado durante a primeira requisição HTTP que fizer menção a este bean sendo destruído quando a aplicação Web for encerrada • @NoneScoped • O managed bean vive apenas durante o perodo de avaliação de uma EL (Expression Language) 17 Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense Campus Sapucaia do Sul Java Server Faces • View • Expression Language • Fornecem um mecanismo importante para habilitar a camada de apresentação (páginas Web) a se comunicar com a lógica da aplicação (managed beans) 18 Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense Campus Sapucaia do Sul Java Server Faces • View • Expression Language • Avaliação Tardia #{} • São mais comuns e podem ser utilizadas em todas as outras fases do ciclo de vida da página JSF • Avaliação imediata ${} • São avaliadas imediatamente. Estas expressões podem ser utilizadas apenas com templates ou com o valores de atributos de tags que aceitam valores de expressões em tempo de execução <fmt:formatNumber value=“${sessionScope.cart.total}"/> 19 Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense Campus Sapucaia do Sul Java Server Faces • Navegação • Componentes como CommandButton e CommandLink do JSF são utilizados para realizar ações, como submeter um formulário e navegar para outra página • Os métodos devem ser implementados no bean e devem retornar um string contendo a view que será utilizada 20 Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense Campus Sapucaia do Sul Java Server Faces • Navegação • Componentes como CommandButton e CommandLink do JSF são utilizados para realizar ações, como submeter um formulário e navegar para outra página • Os métodos devem ser implementados no bean e devem retornar um string contendo a view que será utilizada 21 Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense Campus Sapucaia do Sul Java Server Faces • Temas do PrimeFaces • Possibilita alterar rapidamente cores e algumas características do CSS manipulado pelo framework • Existem diversos temas alguns gratuitos e outros pagos, observar no site do primefaces as opções disponíveis 22 Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense Campus Sapucaia do Sul Java Server Faces • Vamos a um pequeno exemplo prático • Projeto disponível no site www.ricardoluis.com • Observar e comentar o model, o bean e as views criadas • Observar as features disponíveis • Centenas de componentes estão disponíveis, bem como, a documentação sobre tais componentes no site http://www.primefaces.org/showcase/ 23 Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense Campus Sapucaia do Sul Exercício • Implementar um modelo, um bean e as views necessárias para • Listar os fretes cadastrados • Cadastrar um novo frete • Excluir um determinado frete • Editar um frete • Utilize diferentes componentes e temas observados no site http://www.primefaces.org/showcase/ Fretes - 24 Id: Long estado: String valor: Int peso: Float Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense Campus Sapucaia do Sul Perguntas?