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
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
- 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;
- JSF e taglib
- JSP - Java Server Pages
- Procurando por MVC?
- Desenvolvimento Java Server Faces
- O que é Java Server Faces (JSF)?
- Opinião sobre Struts 2 ou JSF
- JSF + Eclipse = Falha
- Iniciando um projeto...
- Opinião sobre livros
- Comparaçào entre os livros :Desenvolvendo Aplicações WEB com NetBeans IDE 6 e Dominando JavaServer Faces e Facelets Utilizando Spring 2.5, Hibernate e
- Livro de JSF
- Perdido nos FrameWorks
- Problema para começar a programar com JAVA WEB

