Olá, pessoal! Nesse artigo veremos como criar um formulário usando JavaServerFaces tendo a IDE Netbeans como ambiente de desenvolvimento e o glassfish como servidor. Parece um exemplo bobo, “criar formulário de login/senha”, mas usaremos esse exemplo “bobo” para mostrar como é mais prazeroso usar JavaServerFaces para desenvolvimento JEE.
Lets go…
JavaServerFaces é um framework desenvolvido pela Sun, tendo como objetivo facilitar o desenvolvimento de aplicações Web através de componentes de interface de usuário (GUI) e conectar estes componentes a objetos de negócios. Read more…
Livro JSF in Action: estou lendo este livro para aprimorar meus conhecimentos sobre o framework e realmente o material está excelente, com uma leitura bem confortável. E o melhor: nem tão caro é para quem tem cartão internacional e puder comprar em alguma livraria internacional.
Requisitos:
- Java 1.5/Superior
- Netbeans 6.0/Superior
Passo 1
Aqui vamos criar o projeto e o Bean para que o JSF possa acessar.
1. Crie um novo projeto no NB. Dê nome ao projeto e depois clique em next.
2. Na terceira tela, para escolher o framework, marque JavaServerFaces.
3. A estrutura do seu projeto deve ser semelhante à imagem a seguir:

faces-config.xml = é o arquivo de navegação da sua aplicação com jsf.
4. Crie uma classe java chamada CamBean tendo uma variável do tipo String nome e, em seguida, use a técnica de refatoração “encapsulated field” da IDE. Clique no menu Refactor ==> Encapsulated Field. Em seguida, diga que os métodos serão public e os campos private.
5. Crie um método chamado verifica com o tipo de retorno String
/*<br /> * To change this template, choose Tools | Templates<br /> * and open the template in the editor.<br /> */<br /><br />package br.camilo.com;<br /><br />import javax.faces.application.FacesMessage;<br />import javax.faces.context.FacesContext;<br /><br />/**<br /> *<br /> * @author Camilo<br /> */<br />public class CamNome {<br /> private String login = null; <br /> private String senha = null;<br /><br /> public String getLogin() {<br /> return login;<br /> }<br /><br /> public void setLogin(String login) {<br /> this.login = login;<br /> }<br /><br /> public String getSenha() {<br /> return senha;<br /> }<br /><br /> public void setSenha(String senha) {<br /> this.senha = senha;<br /> }<br /><br /> /* poderia conectar ao BD e verificar se os campos digitados batem com <br /> * os que estao no banco */<br /> public String verifica(){<br /> boolean sucesso = true;<br /><br /> FacesContext context = FacesContext.getCurrentInstance();<br /> if(!login.equalsIgnoreCase("camilo") && !senha.equalsIgnoreCase("123")){<br /> String msg = "usuário inválido";<br /> FacesMessage message = new FacesMessage(msg);<br /> context.addMessage("formulario", message);<br /> sucesso = false;<br /><br /> }else{<br /> sucesso = true;<br /> }<br /><br /> return (sucesso ? "sucesso" : "falha");<br /> }<br />}Passo 2
Criar o formulário usando JSF. Para isso, altere o arquivo welcomeJSF.jsp deixando como na imagem a seguir:
<%@page contentType="text/html"%><br /><%@page pageEncoding="UTF-8"%><br /><br /><%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%><br /><%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%><br /><br /><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"<br /> "http://www.w3.org/TR/html4/loose.dtd"><br /><br /><%--<br /> This file is an entry point for JavaServer Faces application.<br />--%><br /><!-- FORMULARIO PARA O USUARIO --><br /><html><br /> <head><br /> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><br /> <title>JSP Page</title><br /> </head><br /> <body> <!-- SEU CODIGO JSF DEVE ESTÁ DENTRO DE f:view --><br /> <f:view><br /> <h:form id="formulario"><br /><br /> Digite seu login: <br /> <!-- aqui tem o mesmo efeito do input que usamos no html, porem <br /> este é jsf com suas particulidades, observe que passo o valor digitado<br /> para variavel login da class CamNome e digo que esse campo é obrigatorio" --><br /> <h:inputText id="nome" value="#{CamNome.login}" required="true" <br /> requiredMessage="este campo é obrigatório"/> <br/><br /> digite sua senha:<br /> <h:inputSecret id="senha" value="#{CamNome.senha}" required="true" <br /> requiredMessage="este campo é obrigatório"/><br/><br /> <h:commandButton action="#{CamNome.verifica}" value="Login" id="submit"/><br /> <br/><br /> <!-- em caso do usuario quebrar alguma regra de nao preencher <br /> os campos ele vai receber a mensagem que está na class CamNome.java<br /> --><br /> <h:messages /><br /> </h:form><br /> </f:view><br /> </body><br /></html>Passo 3
Fazer o mapeamento no arquivo face-config.xml, para navegação da aplicação.
1. Abra o face-config.xml, normalmente ele estará no modo PageFlow. Altere para XML e clique com o botão direito em qualquer parte em branco e depois clique na opção como na imagem a seguir:
2. Agora vamos inserir as regras. A página inicial deve ser chamada como default. Faça o mesmo procedimento da imagem anterior, mas dessa vez escolha Add Navigation Rule e preencha a tela que apareceu conforme abaixo:
3. Salve as alterações e, em seguida, crie duas páginas JSP: uma com o nome de sucesso.jsp e outra falha.jsp. Essas serão as páginas que serão exibidas de acordo com o resultado.
4. Abra o arquivo face-config.xml no modo PageFlow e deixe conforme a imagem a seguir:
Testando a aplicação
O teste da aplicação é bem simples, basta clicar com o botão direito do mouse e escolher a opção “Run” e aguardar.

Bom, pessoal! Vou ficando por aqui e espero que tenham gostado. Até o próximo artigo!
Um abraço!







