O documento discute Java Server Faces (JSF), incluindo seu surgimento, características, visão geral do modelo MVC, ciclo de vida e integração com Ajax. JSF é uma especificação para desenvolvimento de aplicações web que utiliza componentes pré-construídos e programação orientada a eventos. Ele permite a integração com outros frameworks e possui implementações como MyFaces e Oracle ADF Faces.
5. Características
• Especificação
– Cada um implementa da maneira que quiser
• Morraja (JSF RI) – Sun Microsystems
• MyFaces – Apache
• ADF Faces – Oracle
• Etc
– Possui um conjunto de componentes de UI pré-
desenvolvidos
– Modelo de programação dirigida por eventos
6. Características
• Especificação
– Modelo de componentes que permite a utilização
de outros componentes fornecidos por terceiros
• Woodstock
• JBoss RichFaces
• ICEFaces
• Apache Tomahawk
• http://www.jsfmatrix.net
12. Visão Geral - Model
• Beans
public class User {
private String login;
public void setLogin(String login) {
this.login = login;
}
public String getLogin() {
return login;
}
}
13. Visão Geral - Controller
• Backing Beans
– Seus métodos podem ser chamados a partir da
view
– Contém as variáveis que serão mostradas na tela
– São configurados no faces-config.xml
14. Visão Geral - Controller
• Backing Beans
– 3 tipos de escopo: request, session e application
– Instanciados automaticamente por Inversão de
Controle
15. Visão Geral - Controller
public class BackingBean {
private User user = new User();
public String login() {
if (user.getLogin().equals(“João Sávio”))
return “main”;
else
return null;
}
//user setters and getters
}
20. Juntando Tudo
• Expression Language
– É uma poderosa linguagem de expressão para
acessar propriedades de beans e coleções
– “#{apelido.algumaCoisa}”
– Quando ocorrer uma requisição pelo browser, os
elementos da página são preenchidos
dinamicamente pela camada de negócios
24. FacesContext
• Representa o estado da requisição atual
– Acessar a view atual
– Controlar a sessão
– Adicionar mensagens de erro
• Info, warn, error, fatal
– Controlar o ciclo de vida
25. FacesContext
• Representa o estado da requisição atual
• Como pegá-lo?
– FacesContext context =
FacesContext.getCurrentInstance();
49. Ciclo de Vida
1. Restore View
2. Apply request values
3. Process Validation
4. Update model values
5. Invoke Application
6. Render response
50. Ciclo de Vida
1. Restore View
– Recupera a árvore de components do cliente ou
sessão
51. Ciclo de Vida
1. Restore View
2. Apply request values
– Decodifica os componentes
– Preenche-os com valores string
52. Ciclo de Vida
1. Restore View
2. Apply request values
3. Process Validation
– Converte strings para objetos
– Valida os objetos
53. Ciclo de Vida
1. Restore View
2. Apply request values
3. Process Validation
4. Update model values
– Chama os métodos setters dos managed beans
54. Ciclo de Vida
1. Restore View
2. Apply request values
3. Process Validation
4. Update model values
5. Invoke Application
– Invoca os métodos
– Verifica a navegação
55. Ciclo de Vida
1. Restore View
2. Apply request values
3. Process Validation
4. Update model values
5. Invoke Application
6. Render response
– Chama os métodos getters para preencher os
componentes
68. Referências
• GEARY, David M; HORSTMANN, C. Core Java Server Faces. 1ª
edição, 2005
• Entendendo um pouco de Java Server Faces. Disponível em
http://www.javafree.org/artigo/871659/Entendendo-um-
pouco-de-Java-Server-Faces-JSF.html
• Especificação oficial JSF (capítulos 10 - 14). Disponível em
http://java.sun.com/javaee/5/docs/tutorial/doc/bnaph.html
• www.rponte.com.br