Parte 2 - Iniciando no JBoss Seam
Este blog deixou de ser mantido, mas o autor continua escrevendo aqui. Não deixe de assinar o novo feed!
Dando continuidade à primeira parte do tutorial, vamos agora montar uma aplicação JSF bem simples com duas páginas JSP e um Managed Bean, que simulam um cadastro. Até mesmo quem nunca viu JSF na vida pode acompanhar este tutorial!
Adicionando o suporte a JSF
Depois de criado o projeto, nós devemos adicionar o framework JSF ao nosso módulo Web. Para isso, clique com o botão direito sobre o projeto Registration-war e vá em Properties. Selecione a opção Frameworks e adicione o framework JavaServer Faces através do botão Add…. Configure o JSF de acordo com a imagem abaixo:
Criando o Managed Bean
Dê OK nas janelas para confirmar as modificações. Vamos prosseguir com o desenvolvimento criando um Managed Bean. Clique com o botão direito no projeto Registration-war e selecione a opção JSF Managed Bean:
O NetBeans abrirá o seu arquivo faces-config.xml. Modifique o nome do bean User para user:
-
-
<?xml version="1.0" encoding="UTF-8" ?>
-
-
<faces-config>
-
<managed-bean>
-
<managed-bean-name>user</managed-bean-name>
-
<managed-bean-class>mbean.User</managed-bean-class>
-
<managed-bean-scope>request</managed-bean-scope>
-
</managed-bean>
-
</faces-config>
-
Edite o arquivo User.java de acordo com a listagem:
Criando as views
Vamos agora editar o arquivo welcomeJSF.jsp, com o seguinte conteúdo:
-
-
<%@page contentType="text/html" %>
-
<%@page pageEncoding="UTF-8" %>
-
-
<%@taglib prefix="f" uri="http://java.sun.com/jsf/core" %>
-
<%@taglib prefix="h" uri="http://java.sun.com/jsf/html" %>
-
-
<f:view>
-
<f:loadBundle basename="bundle.messages" var="msg" />
-
</head>
-
<h:form>
-
<h:panelGrid columns="2">
-
<h:outputLabel for="username" value="#{msg.register_label_username}" />
-
<h:inputText id="username" value="#{user.username}" required="true" />
-
-
<h:outputLabel for="password" value="#{msg.register_label_password}" />
-
<h:inputSecret id="password" value="#{user.password}" required="true" />
-
-
<h:outputLabel for="name" value="#{msg.register_label_name}" />
-
<h:inputText id="name" value="#{user.name}" />
-
-
<h:commandButton id="submit" value="#{msg.register_label_submit}" action="#{user.register}" />
-
</h:panelGrid>
-
</h:form>
-
</body>
-
</html>
-
</f:view>
-
Agora, crie uma nova página JSP chamada registered.jsp, no mesmo local onde as outras páginas JSP estão localizadas. Codifique o JSP de acordo com a imagem:
-
-
<%@page contentType="text/html" %>
-
<%@page pageEncoding="UTF-8" %>
-
-
<%@taglib prefix="f" uri="http://java.sun.com/jsf/core" %>
-
<%@taglib prefix="h" uri="http://java.sun.com/jsf/html" %>
-
-
<f:view>
-
<f:loadBundle basename="bundle.messages" var="msg" />
-
</head>
-
<h:outputText value="#{msg.registered_message}" />
-
<h:outputText value="#{user.name}" />!
-
</h4>
-
</body>
-
</html>
-
</f:view>
-
Internacionalização e navegação
Para concluir a aplicação faltam duas coisas: criar o arquivo messages.properties, no pacote bundle, e criar as regras de navegação no arquivo faces-config.xml.
Vamos criar o properties. Lembre-se que estamos trabalhando no módulo Web ainda, então, tanto os arquivos que foram mostrados anteriormente, quanto os arquivos que restam, estão sendo criados neste projeto! Veja agora os properties:
-
-
register_title=Registration
-
register_message=Registration app
-
register_label_username=User name\:
-
register_label_password=Password\:
-
register_label_name=Name\:
-
register_label_submit=Register now
-
registered_title=Thank you\!
-
registered_message=Welcome,
-
Finalizando a aplicação, vamos criar as regras de navegação:
-
-
<?xml version=‘1.0′ encoding=‘UTF-8′ ?>
-
-
<faces-config>
-
<application>
-
<locale-config>
-
<default-locale>en</default-locale>
-
</locale-config>
-
</application>
-
-
<navigation-rule>
-
<from-view-id>/welcomeJSF.jsp</from-view-id>
-
<navigation-case>
-
<from-outcome>registered</from-outcome>
-
<to-view-id>/registered.jsp</to-view-id>
-
</navigation-case>
-
</navigation-rule>
-
-
<managed-bean>
-
<managed-bean-name>user</managed-bean-name>
-
<managed-bean-class>mbean.User</managed-bean-class>
-
<managed-bean-scope>request</managed-bean-scope>
-
</managed-bean>
-
</faces-config>
-
É isso!
É isso aí! Terminamos a aplicação! Basta apertar F6 para rodar e conferir se está tudo funcionando conforme o esperado!
Espero que tudo tenha ocorrido como deveria aí com você… qualquer dúvida, problema, críticas/sugestões, crie um comentário neste post.
UPDATE: Não deixe de conferir as partes um e três do tutorial!
Tags: ejb, introdução, java, jsf, netbeans, seam, tutorial

27 de junho de 2007 às 5:48 pm
vai tudo bem ate o submit, entao da um erro na pagina
javax.servlet.ServletException: No active application scope
fico aguardando uma resposta , obrigado
27 de junho de 2007 às 6:13 pm
Olá Andre, tudo bem?
Cara, eu criei um projeto no netbeans 5.5.1 rc1 e reproduzi exatamente os passos que mostrei no decorrer do artigo, e nenhum erro apareceu.
Infelizmente, como nunca vi esse erro que você está tendo, não posso ajudar da forma que gostaria. Mas eu segui o tutorial passo-a-passo e funcionou perfeitamente… verifique se você não deixou de fazer algo (ou fez algo diferente).
[]s!