Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
© 2015 Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense
Campus Sapucaia do Sul
JSF e PrimeFacesProfessor: Ricardo Luis dos Santos
IFSUL – Campus Sapucaia do Sul
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• Introdução
• Desenvolvimento Web
• Java Server Faces
• Exercício
2
Agenda
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• 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
Introdução
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• 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
Introdução
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• 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
Introdução
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
6
Desenvolvimento Web
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
7
Desenvolvimento Web
• Java Server Pages
• Construído acima da tecnologia Servlets, capacita os desenvolvedores Web a editar paginas HTML com tagsespeciais 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
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
8
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çãodos dados presentes no modelosolicitado
• Controller envia comandos para omodel para persistir objetos e comandos para a view para alterar a apresentação da informação
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
9
Desenvolvimento Web
• Padrão MVC
• Exemplos de frameworks Web Java que utilizam o padrão MVC
• Struts
• Spring MVC
• VRaptor
• JSF
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
10
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
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
11
Java Server Faces
• Diversos componentes para podermos utilizar
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• Model
• Podemos utilizar as anotações do JPA vistas na disciplina
• Pojos simples e leves
12
Java Server Faces
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• 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
Java Server Faces
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• 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
Java Server Faces
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• Escopo de um Managed Bean (Controller)
• Define o tempo que uma instância do Managed Beansobrevive 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
Java Server Faces
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• 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
Java Server Faces
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• 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 beansendo 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
Java Server Faces
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• 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
Java Server Faces
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• 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
Java Server Faces
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• 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
Java Server Faces
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• 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
Java Server Faces
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• 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
Java Server Faces
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• 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
Java Server Faces
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• Implementar um modelo, um bean e as viewsnecessá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/
24
Exercício
- Id: Long
- estado: String
- valor: Int
- peso: Float
Fretes
Perguntas?