O que é? - Java Server Faces (JSF) é um framework para desenvolvimento Web;
Por que usar? - Se tornou um padrão; - Fácil de usar; - Open source; - Etc;
O que preciso saber para conseguir acompanhar o tutorial?
-Orientação a objetos básico;
- Java básico;
- Jsp básico
- XML básico;
Agora podemos começar com algumas definições:
1. Regras de Navegação
- É a central de informações da aplicação Web, elas respondem a pergunta: "ei, para qual página vamos agora?";
- São definidas no arquivo faces-config.xml;
- Quando um botão ou um link é clicado, passamos por um método que retornará uma String, ou podemos enviar essa String diretamente;
- Uma String null ou "", faz a aplicação retornar para a mesma página;
Vejamos abaixo um exemplo:
-
/welcomeJSF.jsp -
case >
Observações:
/welcomeJSF.jsp
- Essa linha garante que a String só será analisada se vier de welcomeJSF.jsp
(opcional)
- Muda o endereço da página no navegador;
- Mais lento, pois são feitas duas requisições;
- Objetos colocados no escopo do request são perdidos durante a segunda requisição;
2. BackingBeans
- São classes simples com variáveis e os famosos setters e getters;
- Armazenarão os dados que serão mostrados no browser;
- Precisam ser configurados no faces-config.xml;
Escopo dos BackingBeans
- request – começa quando uma requisição HTTP é submetida e termina quando a resposta é enviada de volta aocliente;
- session – persiste durante toda a sessão;
- application – persiste por toda a duração da aplicação web. É compartilhado por todas as requisições e por todas as sessões;
Exemplo:
- Muda o endereço da página no navegador;
- Mais lento, pois são feitas duas requisições;
- Objetos colocados no escopo do request são perdidos durante a segunda requisição;
2. BackingBeans
- São classes simples com variáveis e os famosos setters e getters;
- Armazenarão os dados que serão mostrados no browser;
- Precisam ser configurados no faces-config.xml;
Escopo dos BackingBeans
- request – começa quando uma requisição HTTP é submetida e termina quando a resposta é enviada de volta aocliente;
- session – persiste durante toda a sessão;
- application – persiste por toda a duração da aplicação web. É compartilhado por todas as requisições e por todas as sessões;
Exemplo:
- package beans;
- public class ExemploBean {
- private String usuario;
- public void setUsuario (String usuario) {
- this.usuario = usuario;
- }
- public String getUsuario() {
- return usuario;
- }
- }
Agora, configurando no faces-config.xml:
-
b
Um exemplo mais completo:
- Se em nossa welcomeJSF.jsp temos:
- Se em nossa welcomeJSF.jsp temos:
- ...
- <%--acessa a variável " usuario" do bean chamado de "b"--%>
- <%--chama o método "ok" do bean "b"--%>
- ...
- E tivessemos um método chamado "ok" na nossa classe ExemploBean:
- public String ok() {
- if (usuario.equals(“João Sávio”)
- return “sucesso”; //Lembram da String? Olha ela aqui!!!!
- else
- return “falha”;
- }
Quando o botão "OK" for pressionado, ele chamará o método "ok" do bean "b";
- Esse método retornará uma String que será analisada pelas regras de navegação;
Agora vamos ver uma utilização mais apropriada dos Backing Beans:
- Criaremos uma classe chamada ControleBean em um pacote diferenciado;
- Essa classe conterá uma variável que referenciará ExemploBean;
- Mudaremos o bean "b" na regra de navegação;
- Esse método retornará uma String que será analisada pelas regras de navegação;
Agora vamos ver uma utilização mais apropriada dos Backing Beans:
- Criaremos uma classe chamada ControleBean em um pacote diferenciado;
- Essa classe conterá uma variável que referenciará ExemploBean;
- Mudaremos o bean "b" na regra de navegação;
- package controller;
- import beans.ExemploBean;
- public class ControleBean{
- private ExemploBean exBean;
- public ControleBean() {
- exBean = new ExemploBean(); //não esquecer de instanciar
- }
- public String ok() {
- if (usuario.equals(“João Sávio”)
- return “sucesso”;
- else
- return “falha”;
- }
- //respectivos sets e gets de ExemploBean(obrigatório)
- }
E no faces-config.xml:
-
b -
class >controller.ControleBeanclass> -
session
E como acessaremos a variável "usuario" de ExemploBean?
- Simples, basta fazer isso: "#{b.exBean.usuario}";
Quais as vantagens dessa abordagem?
- Não teremos uma classe bagunçada, ou seja, cheia de sets, gets e métodos controladores;
- Estaremos implementando o padrão MVC (Model-View-Controller) mais eficientemente, separando o Model (ExemploBean.java), o Controller (ControleBean.java) e a View (welcomeJSF.jsp);
- Simples, basta fazer isso: "#{b.exBean.usuario}";
Quais as vantagens dessa abordagem?
- Não teremos uma classe bagunçada, ou seja, cheia de sets, gets e métodos controladores;
- Estaremos implementando o padrão MVC (Model-View-Controller) mais eficientemente, separando o Model (ExemploBean.java), o Controller (ControleBean.java) e a View (welcomeJSF.jsp);
Retirado do site JavaFree
0 comentários:
Postar um comentário