Dev (Back & Front)ARTIGO

Usando JSF com NetBeans – criando um newsletter

Leia o artigo anterior

Usando JSF com NetBeans

*

Aê, pessoal! Nesse artigo veremos algumas
funcionalidade com JSF. Vamos criar uma newsletter com o recurso de
campos required onde não serão permitidos campos vazios. Para não
ficar um texto muito grande, não envolvi armazenar os dados em BD
usando JSF.

Lets go…

Primeiramente crie um projeto no seu Netbeans e chame esse de
Newsletter.

Clique em next e diga que vai usar o JavaServer Face como framework.

Agora vamos criar nossa classe JavaBean. Então, clique com o botão direito no projeto e escolha Java Class e dê o nome NewsletterBean, e no package coloque br.news.bean

Em seguida temos um método que vai verificar (acao ()) o que foi
digitado antes de “cadastrar” os dados em um possível BD. Esse
método retorna uma String, pois a partir dessa string o
JavaFaces toma as decisões.

 public String acao(){<br />        FacesContext context = FacesContext.getCurrentInstance();<br />       //verificar o que foi digitado<br />        if(nome!=null && email !=null){<br />            for(int i=0;i< email.length();i++){<br />                char c = email.charAt(i);<br />                if(!Character.isSpaceChar(c)){<br />                    String msg = "espaco em branco nao permitido";<br />                    FacesMessage message = new FacesMessage(msg);<br />                    context.addMessage("formulario", message);<br />                    sucesso = false;<br />                    break;<br />                }<br />            }<br />        } else{ <br />            sucesso = false;<br />        }<br />        return (sucesso? "falha" : "sucesso");<br />    }<br />}

Crie um arquivo .jsp chamado sucesso.jsp e deixe conforme
abaixo:

<%@page contentType="text/html" pageEncoding="UTF-8"%><br /><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"<br />   "http://www.w3.org/TR/html4/loose.dtd"><br />   <%@ taglib uri="http://java.sun.com/jsf/core"prefix="f" %><br />   <%@ taglib  uri="http://java.sun.com/jsf/html" prefix="h" %><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><br />        <f:view><br />           E-mail  <h:outputText value="#{news.email}"/><br/> cadastrado com sucesso!<br />        </f:view><br />    </body><br /></html>

Mude o nome do arquivo welcomeJSP.jsp para index e deixe assim:

 <body><br />        <f:view><br />            <h:outputText value="NewsLetter" /><br />            <h:form id="formulario"><br />                Digite seu nome: <br />                <h:inputText id="nome" value="#{news.nome}" required="true" <br />                             requiredMessage="Campo nome é obrigatório" /><br />                <h:message for="nome"/> <br/><br />                Digite seu email:<br />                <h:inputText id="email" value="#{news.email}" required="true" <br />                requiredMessage="Campo email é obrigatório" /><br />                <h:message for="email"/><br />                <br/><br />                <br />                 <h:commandButton action="#{news.acao}" value ="Enviar" id="submit"/><br />            </h:form><br />        </f:view><br />    </body>

Abra agora o arquivo faces-config.xml no formato XML.

Clique com o botão direito em qualquer local e escolha a opção
conforme a imagem abaixo:

Na tela que abriu deixe conforme a imagem a seguir. Assim estamos
configurando nosso arquivo para saber qual Bean chamar, bem
semelhante como fazemos com o mapeamento usando Servlet.

Faça o mesmo procedimento do passo 10 e escolha Add navigation
Rule e deixe como a imagem a seguir. Assim definimos quem será
nossa página inicial.

Seu arquivo faces-config.xml deve estar semelhante a isso:

<managed-bean><br />        <managed-bean-name>news</managed-bean-name><br />        <managed-bean-class>br.news.bean.NewsLetter</managed-bean-class><br />        <managed-bean-scope>session</managed-bean-scope><br />    </managed-bean><br />    <navigation-rule><br />        <from-view-id>/index.jsp</from-view-id><br />        <navigation-case><br />            <from-outcome>sucesso</from-outcome><br />            <to-view-id>/sucesso.jsp</to-view-id><br />        </navigation-case><br />        <navigation-case><br />            <from-outcome>falha</from-outcome><br />            <to-view-id>/index.jsp</to-view-id><br />        </navigation-case><br />    </navigation-rule>

Escolha o modo PageFlow e faça o link como na imagem a
seguir. Não se esqueça de colocar o nome de cada case. Observe que em
caso de falha, ele mantém a página e no caso de sucesso, ele vai para
página sucesso.jsp

Agora teste sua aplicação, clique com o botão direito no projeto
e em seguida escolha Run. Veja os testes que fiz:

Na próxima tela, altere a imagem como abaixo. Precisamos criar as variáveis que têm relação com os campos do
formulário, então temos que criar a variável nome e email e
permitir o acesso via get/set.

Abraço a todos e espero que tenham gostado!

é Bacharel em Sistemas de Informação e Especialista em Gestão e Estratégia de Negócios. Trabalha com TI desde 2003 e possui as certificações SCJP 5 e SCM. Trabalhou na IBM Brasil como Analista Programador Java, passou pelo laboratório da Enterprise Computing Lab (ECL) HP como Software Engineer, Ci&amp;T como Engenheiro de Software em projeto JEE. Tem experiência internacional em Índia, Dubai e Londres. Atualmente é cofundador da ITSLabs (www.itslabs.com.br), uma start-up focada na criação de produtos web e mobile para start-ups. Também é autor dos livros "Guia do Exame SCJP", "Guia Prático JEE com Frameworks" e "TDD na prática".

Ver perfil