Web com JSF 1.2, Richfaces, Eclipse, Apache Tomcat
Posted In:
JavaServer Faces - JSF
,
Richfaces
.
By Thiago Fonseca
Olá, nesse post pretendo demonstrar como criar um ambiente de desenvolvimento JSF 1.2 utilizando alguns frameworks auxiliares como JBoss Richfaces que nós auxiliam com diversos componentes prontos e integração AJAX (ver Richfaces live demo) como também o Facelets para desenvolver a parte de template e reutilização das páginas.
Requisitos:
- Eclipse JEE - Disponível em http://www.eclipse.org/downloads (Download direto aqui)
- Bibliotecas JSF -
- Biblioteca Commons
- Apache Tomcat - Disponível em http://tomcat.apache.org/ (Download direto aqui)
- JBoss Richfaces 3.3 - Disponível no site do JBoss Richfaces
- Facelets - Disponível em https://facelets.dev.java.net/ (Download direto aqui)
Para instalar o eclipse escolha um diretório que será seu ambiente de desenvolvimento. Ex.: C:\Java-Desenv\ e nele descompacte o eclipse ficando C:\Java-Desenv\eclipse3.X . Eclipse não precisa de instalação, na hora que executá-lo defina um workspace dentro de seu ambiente como exemplo C:\Java-Desenv\workspace onde seus projetos irão ficar armazenados
Instalando o Apache Tomcat
O Tomcat que foi baixado não necessita de instalação sendo extraído na pasta de desenvolvimento C:\Java-Desenv\apache-tomcat-6.0.18.
Para integrar com o eclipse faça os seguintes passos:
- Execute o Eclipse
- Coloque na pespectiva JEE
- Depois click na aba Server e com o botão direito adicione um novo server
- Escolha a opção Apache Tomcat v6.0. Em Server Runtime click em ADD para adicionar um novo servidor. Na janela que aparecerá aponte para o local que encontra o tomcat como na foto abaixo abaixo
Para os próximos passos precisamos criar um projeto web para então adicionarmos o Richfaces e Facelets.
Criando um projeto web
No eclipse vá em File-New-Dynamic Web Project
- Insira um nome para o projeto
- Target-Runtime escolha o server Apache Tomcat
- Configuration - Escolha JavaServer Faces v1.2 ou click no botão modify e coloque as configurações como na imagem abaixo
- Next-Next
- Em JSF Capabilities deixaremos por padrão sem nenhuma biblioteca e as configurações padrão do JSF e clicaremos em Finish.
Por padrão o eclipse cria um projeto JSF mas não adiciona nenhuma biblioteca para que a gente possa executar o projeto JSF e as páginas JSF. Para adicionarmos as bibliotecas podemos escolher ela na tela Capabilities(tela acima) configurando em new e adicionar as bibliotecas para que sempre já estejam lá, ou adicionar as Jar's na pasta WebContent\WEB-INF\lib do projeto.
Para baixar as bibliotecas do JSF podemos ir no site Javaserverfaces.dev.java.net e fazer o download das bibliotecas JSF 1.2 (jsf-api.jar and jsf-impl.jar) e das bibliotecas JSTL (standard.jar e jstl.jar, Projeto Jakarta taglib).
Para baixar todas as bibliotecas JSF necessárias utilize um dos seguintes links (Download das lib JSF link1 ou link2)
Devemos também baixar as bibliotecas Commons necessárias utilize um dos seguintes links (Download das lib Commons link1 ou link2)
Vale ressaltar novamente em copiar as jar para pasta WebContent\WEB-INF\lib do projeto. Após copiar podemos criar uma nova página JSF no eclipse.
- Botão direito no projeto - New - JSP
- Inserir um nome - Ex.: index
- Finish
- Botão direito no index.jsp - Run As - Run on server
- Caso apareça para escolher um server, escolha o tomcat next ... next finish.
Instalando o Richfaces
Após baixar as bibliotecas do richfaces descompactar as lib (richfaces-api,richfaces-imp,richfaces-ui ,*.jar) na pasta WebContent\WEB-INF\lib do nosso projeto.
Depois devemos registrar o richfaces no web.xml da pasta WebContent\WEB-INF do nosso projeto. Para isso devemos copiar e colar no web.xml os seguintes comandos:
<!-- "Blue Sky" skin para o projeto -->
<context-param>
<param-name>org.richfaces.SKIN</param-name>
<param-value>blueSky</param-value>
</context-param>
<!-- Making the RichFaces skin spread to standard HTML controls -->
<context-param>
<param-name>org.richfaces.CONTROL_SKINNING</param-name>
<param-value>enable</param-value>
</context-param>
<!-- Defining and mapping the RichFaces filter -->
<filter>
<display-name>RichFaces Filter</display-name>
<filter-name>richfaces</filter-name>
<filter-class>org.ajax4jsf.Filter</filter-class>
</filter>
<filter-mapping>
<filter-name>richfaces</filter-name>
<servlet-name>Faces Servlet</servlet-name>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>INCLUDE</dispatcher>
</filter-mapping>
<listener>
<listener-class>com.sun.faces.config.ConfigureListener</listener-class>
</listener>
Após salvar o web.xml, podemos atualizar nossa página index.jsp para o seguinte código
<%@ taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@ taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%>
<%@ taglib uri="http://richfaces.org/rich" prefix="rich"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<f:view>
<a4j:form>
<rich:panel header="RichFaces Greeter" style="width: 315px">
<h:outputText value="Your name: " />
<h:inputText value="#{user.name}" >
<f:validateLength minimum="1" maximum="30" />
</h:inputText>
<a4j:commandButton value="Get greeting" reRender="greeting" />
<h:panelGroup id="greeting" >
<h:outputText value="Hello, " rendered="#{not empty user.name}" />
<h:outputText value="#{user.name}" />
<h:outputText value="!" rendered="#{not empty user.name}" />
</h:panelGroup>
</rich:panel>
</a4j:form>
</f:view>
</body>
</html>
Após salvar devemos rodar no servidor, e então nossa página já estará configurada para utilizar o Richfaces finalmente =p
Espero que tenha ajudado,
Abraços Thiago
7 Responses to Web com JSF 1.2, Richfaces, Eclipse, Apache Tomcat
Valew, tava procurando um tutorial explicativo como esse ;)
Muito obrigada pelo tutorial.
Estava ao tempo com um erro q não conseguia solucionar seguindo outro tutorial.Já estava a dar em maluca!
Com o teu tutorial consegui resolver os meus problemas.
Foi muito útil.
Mais uma vez obrigada
Thiago,
Fiz o exemplo que você disponibilizou e a página aparece beleza. Acontece que quando clico no botão aparece o erro abaixo. Sabe o que pode ser?
javax.servlet.ServletException: /index.jsp(15,3) '#{user.name}' Target Unreachable, identifier 'user' resolved to null
javax.faces.webapp.FacesServlet.service(FacesServlet.java:277)
org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:206)
org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)
.
Thiago,
Esquece... Já funcionou !! ...kkk
Obrigado.
javax.servlet.ServletException: /index.jsp(15,3) '#{user.name}' Target Unreachable, identifier 'user' resolved to null
como faço para resolver?
Aguardo retorno
Something to say?