Login Registre-se

Você pode ganhar um iPad 2 na promoção do Javafree

O Portal javafree.org inicia mais uma promoção para os usuários do fórum. Quem publicar mais posts válidos (perguntas ou respostas) entre 16/4 a 13/7 levará para casa um iPad 2 de 16GB!

Clique aqui e saiba mais.
Home > Artigos > Ambiente WEB >

Entendendo um pouco de Java Server Faces (JSF)

Publicado por joaosavio em 17/08/2009 - 106.731 visualizações


comentários: 0

Entendendo um pouco de Java Server Faces (JSF)
João Sávio C. Longo
joaosavio@gmail.com
http://joaosavio.wordpress.com

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:

Observações:

- 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 ao cliente;
- 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:

Agora, configurando no faces-config.xml:

Um exemplo mais completo:

- Se em nossa welcomeJSF.jsp temos:

- E tivessemos um método chamado "ok" na nossa classe ExemploBean:

- 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;


E no faces-config.xml:

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);

Referências:
- GEARY, D. M.; HORSTMANN, C. S. Core Java Server Faces;
- PONTE, R. Repitam comigo: Redirect não é forward. Disponível em http://www.rponte.com.br/tag/redirect Acesso em 31 dez 2008;


comentários: 0