JSF, Inicio Rápido – Parte 2
Autor: Reinaldo Elias | Publicado: 2011-02-19T12:35:00-08:00

Já leu a introdução?

Então vamos à parte 2 deste tutorial.
Agora vamos criar algumas páginas JSP e Java, para começar a transformar nosso projeto em um “projeto”.

Mas primeiro, deixa eu explicar a finalidade destas páginas.
Vamos desenvolver um projetinho simples de JSF, para exemplificar a  comunicação e configuração das páginas e do projeto em si, para isso  iremos construir uma páginazinha index com uma opção de cadastro, ao  clicar no link será aberta uma página de cadastro com 3 campos: Nome,  e-mail e um “botão” submit, ao enviar este formulário os beans serão  populados e estas informações serão exibidas em outra página, com um  botão de voltar para a página inicial.

Ficará mais ou menos assim:


Página inicial / Menu:

&nbsp;
 Página de cadastro:

&nbsp;
 Página de Falha no cadastro (Caso não tenha sido digitado nada na tela):

&nbsp;
 Página de cadastro (Após clicar no botão “Tentar novamente” da página de erro):

&nbsp;
 Página de sucesso (Ao preencher os campos de cadastro corretamente):

&nbsp;
 Página principal (Ao clicar no botão “Voltar” da página de Sucesso.)
      


Agora que já sabemos como o projeto irá ficar no final, podemos começar a construir as páginas.
Aqui vale uma explicação sobre as páginas. Em JSF nenhuma tag especial  consegue ser executada se a página não for chamada “página.jsf”, se você  chamar em algum link “página.jsp”, por exemplo, o console irá acusar um  erro, informando que as tags da página solicitada são inválidos. Não se  esqueça disso!

Crie a seguinte estrutura de arquivos (dentro das pastas indicadas nas imagens, crie as pastas que não existirem):


&nbsp;
 Então teremos os seguintes arquivos criados:
testeBean   dentro das pastas (pacote) br.com.projetox.view.bean;
messages.properties  dentro das pastas (pacote) br.com.projetox.view.bundle;
index.jsp  dentro da pasta WebContent;
falha.jsp  dentro da pasta WebContent/pages;
inicio.jsp  dentro da pasta WebContent/pages;
menu.jsp  dentro da pasta WebContent/pages;
sucesso.jsp  dentro da pasta WebContent/pages;

Agora que criamos todos os arquivos, vamos preenchê-los com códigos, começando do BEAN.
Abra o arquivo testeBean.java e crie duas váriáveis  String, uma nome e outra email (exatamente com estes nomes) e faça os  gets e sets das variáveis. Crie também um método testar(), para executar  alguma ação e retornar algum “endereço” para a aplicação.
Segue o código:
//----INICIO DO CÓDIGO DA CLASSE testeBean.java
package br.com.projetox.view.bean;
 /**
 * @author codeerror.wordpress.com
 */
 public class testeBean {
 private String nome;
 private String email;
&nbsp;&nbsp; public String testar(){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String retorno = "falhou";
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(!this.nome.equals("") &amp;&amp; !this.email.equals("")){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; retorno = "sucesso";
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return retorno;
&nbsp;&nbsp; }
&nbsp;&nbsp; public String getNome() {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return nome;
&nbsp;&nbsp; }
&nbsp;&nbsp; public void setNome(String novoNome) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.nome = novoNome;
&nbsp;&nbsp; }
&nbsp;&nbsp; public String getEmail() {
&nbsp; &nbsp; &nbsp; return email;
&nbsp;&nbsp; }
&nbsp;&nbsp; public void setEmail(String novoEmail) {
&nbsp; &nbsp; &nbsp; this.email = novoEmail;
&nbsp;&nbsp; }
 }
//----- FIM DO CÓDIGO DA CLASSE testeBean.javaSim eu sei, falta JavaDoc, mas precisamos economizar linhas aqui no post…
Deixa eu explicar o que significa cada coisa.

As variáveis são private String, por que queremos  variáveis do tipo String, e private por que não é pra mais ninguém  (nenhuma outra classe) acessar estas variáveis diretamente, isto é um  padrão de desenvolvimento.

O método testar() verifica se os campos nome e e-mail possuem algum valor, se eles possuirem algum valor o método irá retornar “sucesso” caso eles estejam em branco, o método irá retornar “falha“, irei falar o significado destes retornos mais pra frente, mas já da pra se ter uma idéia.

Depois do método testar() estão os gets e sets das  variáveis. Estes métodos são necessários (e muito) para praticamente  tudo em java, eles que controlam a entrada e saida das variáveis, por  exemplo o método getNome() retorna o valor contido na variável nome, o método setNome(String novoNome) copia o valor da variável novoNome para a variável nome do bean.

Agora vamos falar do arquivo messages.properties, mas a explicação  deste arquivo é um pouco extensa, e este post já está bem grande, então  continuarei no proximo post!

PRÓXIMO PASSO (PARTE 3).