<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Edson Gonçalves &#187; JSF 1.2</title>
	<atom:link href="http://www.edsongoncalves.com.br/tag/jsf-1-2/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.edsongoncalves.com.br</link>
	<description>Tecnologia e Conhecimento ao Alcance de Todos</description>
	<lastBuildDate>Fri, 23 Sep 2011 00:49:08 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Ajax com JSF 1.2 utilizando JBoss RichFaces</title>
		<link>http://www.edsongoncalves.com.br/2010/05/22/ajax-com-jsf-1-2-utilizando-jboss-richfaces/</link>
		<comments>http://www.edsongoncalves.com.br/2010/05/22/ajax-com-jsf-1-2-utilizando-jboss-richfaces/#comments</comments>
		<pubDate>Sat, 22 May 2010 04:49:57 +0000</pubDate>
		<dc:creator>Edson Gonçalves</dc:creator>
				<category><![CDATA[RichFaces]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[Eclipse IDE]]></category>
		<category><![CDATA[Java EE 6]]></category>
		<category><![CDATA[JSF 1.2]]></category>
		<category><![CDATA[Tomcat]]></category>

		<guid isPermaLink="false">http://www.edsongoncalves.com.br/?p=346</guid>
		<description><![CDATA[Olá Pessoal, tudo bom? Como vão vocês? Muitos leitores perguntam como usar o RichFaces para trabalhar com o framework JavaServer Faces 1.2. Este artigo ensina como configurar o RichFaces em sua aplicação JSF, criando um pequeno exemplo, já conhecido na Internet, para demonstrar seu funcionamento. O RichFaces O RichFaces é um conjunto de componentes JSF [...]]]></description>
			<content:encoded><![CDATA[<p>Olá Pessoal, tudo bom? Como vão vocês?</p>
<p>Muitos leitores perguntam como usar o RichFaces para trabalhar com o framework JavaServer Faces 1.2.</p>
<p>Este artigo ensina como configurar o RichFaces em sua aplicação JSF, criando um pequeno exemplo, já conhecido na Internet, para demonstrar seu funcionamento.</p>
<h2>O RichFaces</h2>
<p>O RichFaces é um conjunto de componentes JSF ricos que estendem ou adicionam novos ao JSF padrão.</p>
<p>Sem necessitar de uma linha sequer de JavaScript, o RichFaces fornece componentes que possibilitam utilizar suas páginas sem que haja um reload padrão (quando submetemos uma página ou formulário ao servidor), o que chamamos de AJAX (Asynchronous JavaScript And XML).</p>
<p>Os componentes RichFaces são divididos em duas bibliotecas de tags:  a RichFaces, que fornece temas (skin)  e Ajax4jsf Component Development Kit (CDK).</p>
<h3>Obtendo e instalando o Eclipse IDE</h3>
<p>Para desenvolver aplicações Web usando a plataforma Eclipse, primeiramente você deverá ter o Eclipse em um ambiente voltado para o desenvolvimento Java EE. Para obter o Eclipse IDE, já configurado com o ambiente Web, vá ao endereço <a href="http://www.eclipse.org/downloads/"><strong>http://www.eclipse.org/downloads/</strong></a> e selecione o link <strong>Eclipse IDE for Java EE Developers</strong>.</p>
<p>Ao baixar, descompacte em um local desejado de sua máquina.</p>
<h3>O plug-in JBoss Tools</h3>
<p>Após a descompactação do Eclipse, execute-o para que possamos baixar o plug-in JBoss Tools, que auxiliará no desenvolvimento da aplicação. No Eclipse, vá ao menu <strong>Help&gt;Install New Software</strong>. Digite o endereço  <strong>http://download.jboss.org/jbosstools/updates/stable/galileo/</strong> em <strong>Work with </strong>e clique no botão <strong>Add</strong>. Digite <strong>JBoss Tools</strong> em <strong>Name</strong>, no diálogo que surgiu e confirme no botão <strong>OK</strong>.</p>
<p>Prossiga no assistente até baixar e instalar o plugin. Reinicie o Eclipse IDE no final da instalação.</p>
<h3>Baixando o RichFaces</h3>
<p>Todas as bibliotecas serão utilizadas como no projeto original, menos a do Apache Trinidad que será substituída.</p>
<p>Para baixar as bibliotecas do RichFaces, <a href="http://www.jboss.org/richfaces/download/milestones.html" target="_blank">clique aqui</a>.</p>
<p>A versão utilizada neste tutorial é a <strong>RichFaces 3.3.3</strong>. Entretanto, versões mais recentes poderão ser usadas, desde que compatíveis com o framework JSF 1.2.</p>
<p>Baixe a versão  <strong>Stable Builds</strong>, por ser considerada a estável para produção.</p>
<div id="attachment_347" class="wp-caption alignnone" style="width: 310px"><a href="http://www.edsongoncalves.com.br/wp-content/uploads/2010/05/Figura-11.jpg" rel="lightbox[346]"><img class="size-medium wp-image-347" title="Figura 1" src="http://www.edsongoncalves.com.br/wp-content/uploads/2010/05/Figura-11-300x108.jpg" alt="Figura 1 – Página de download do RichFaces" width="300" height="108" /></a><p class="wp-caption-text">Figura 1 – Página de download do RichFaces</p></div>
<h3>O Servidor Java</h3>
<p>Para este artigo, vamos utilizar o Tomcat 6.0.x.</p>
<h3>As bibliotecas</h3>
<p>Para trabalhar com o JavaServer Faces, primeiramente será preciso configurar os arquivos e a estrutura necessária.</p>
<p>Alguns servidores, assim como o contêiner Servlet Tomcat 6, por padrão, não possuem suporte direto ao JavaServer Faces, ou seja, não contém as bibliotecas necessárias para o desenvolvimento com o mesmo.</p>
<p>Caso queira</p>
<p>Para baixar o JSF, faça download no endereço<strong> </strong><a href="https://javaserverfaces.dev.java.net/"><strong>https://javaserverfaces.dev.java.net/</strong></a>, ou diretamente, <a href="https://javaserverfaces.dev.java.net/files/documents/1866/146226/mojarra-1.2_14-binary.zip"><strong>clicando aqui</strong></a>. Ao baixar o arquivo, simplesmente desempacote em um diretório de sua escolha.</p>
<h4>JavaServer Faces rodando em seu aplicativo Web</h4>
<p>Para ter o JavaServer Faces 1.2 em sua aplicação, você possui dois arquivos do tipo JAR:</p>
<ol>
<li><strong>jsf-api.jar</strong></li>
<li><strong>jsf-impl.jar</strong></li>
</ol>
<p><strong> </strong></p>
<h4>As bibliotecas JSTL</h4>
<p>Adicionadas por padrão pelo JBoss Tools, quando criado um projeto, com dois arquivos JARs:</p>
<ol>
<li><strong>jstl.jar</strong></li>
<li><strong>standard.jar</strong></li>
</ol>
<p>Os arquivos JSTL estão no endereço  <a href="http://www.apache.org/dist/jakarta/taglibs/standard/binaries/"><strong>http://www.apache.org/dist/jakarta/taglibs/standard/binaries/</strong></a>, caso tenha interesse em saber onde encontrar.</p>
<p><strong> </strong></p>
<p>Para torná-los disponíveis em sua aplicação é simples, basta colocar esses arquivos listados no diretório <strong>lib</strong>, encontrado em WEB-INF de sua aplicação Web.</p>
<p>Porém, como vamos utilizar um ambiente de trabalho baseado no Eclipse IDE, será mais fácil essa configuração.</p>
<h4>As bibliotecas RichFaces</h4>
<p>Ao baixar e descompactar, dentro do diretório <strong>lib</strong>, encontrado na descompactação, temos estes três arquivos:</p>
<ul>
<li><strong>richfaces-api-3.3.3.Final.jar</strong></li>
<li><strong>richfaces-impl-3.3.3.Final.jar</strong></li>
<li><strong>richfaces-ui-3.3.3.Final.jar</strong></li>
</ul>
<h3>Criando o projeto</h3>
<p>Crie um novo projeto indo ao menu <strong>File&gt;New&gt;Project</strong>. Na caixa de diálogo <strong>New</strong>, selecione <strong>JBoss Tools Web&gt;JSF&gt;JSF Project</strong>. Clique no botão <strong>Next</strong>.</p>
<div id="attachment_348" class="wp-caption alignnone" style="width: 310px"><a href="http://www.edsongoncalves.com.br/wp-content/uploads/2010/05/Figura-21.jpg" rel="lightbox[346]"><img class="size-medium wp-image-348" title="Figura 2" src="http://www.edsongoncalves.com.br/wp-content/uploads/2010/05/Figura-21-300x232.jpg" alt="Figura 2 – Diálogo New Project com JSF Project selecionado" width="300" height="232" /></a><p class="wp-caption-text">Figura 2 – Diálogo New Project com JSF Project selecionado</p></div>
<p>Na segunda etapa, digite o nome do projeto, em <strong>Project Name</strong> e continue com <strong>Next</strong>.</p>
<div id="attachment_349" class="wp-caption alignnone" style="width: 310px"><a href="http://www.edsongoncalves.com.br/wp-content/uploads/2010/05/Figura-31.jpg" rel="lightbox[346]"><img class="size-medium wp-image-349" title="Figura 3" src="http://www.edsongoncalves.com.br/wp-content/uploads/2010/05/Figura-31-300x215.jpg" alt="Figura 3 – Segunda etapa com o nome do projeto " width="300" height="215" /></a><p class="wp-caption-text">Figura 3 – Segunda etapa com o nome do projeto </p></div>
<p>Na terceira etapa, selecione em <strong>New</strong> o servidor de aplicações Java que vamos utilizar. No caso, selecionaremos o Tomcat.</p>
<div id="attachment_350" class="wp-caption alignnone" style="width: 310px"><a href="http://www.edsongoncalves.com.br/wp-content/uploads/2010/05/Figura-4.jpg" rel="lightbox[346]"><img class="size-medium wp-image-350" title="Figura 4" src="http://www.edsongoncalves.com.br/wp-content/uploads/2010/05/Figura-4-300x215.jpg" alt="Figura 4 – Selecionando um novo servidor para rodar a aplicação" width="300" height="215" /></a><p class="wp-caption-text">Figura 4 – Selecionando um novo servidor para rodar a aplicação</p></div>
<div id="attachment_351" class="wp-caption alignnone" style="width: 310px"><a href="http://www.edsongoncalves.com.br/wp-content/uploads/2010/05/Figura-5.jpg" rel="lightbox[346]"><img class="size-medium wp-image-351" title="Figura 5" src="http://www.edsongoncalves.com.br/wp-content/uploads/2010/05/Figura-5-300x281.jpg" alt="Figura 5 – Seleção do Apache Tomcat 6.0" width="300" height="281" /></a><p class="wp-caption-text">Figura 5 – Seleção do Apache Tomcat 6.0</p></div>
<p>Na configuração do servidor de aplicativos Apache Tomcat, caso você não tenha ainda baixado e instalado, pode clicar no botão <strong>Download and Install</strong>. Termine o diálogo clicando no botão <strong>Finish</strong>.</p>
<div id="attachment_352" class="wp-caption alignnone" style="width: 310px"><a href="http://www.edsongoncalves.com.br/wp-content/uploads/2010/05/Figura-6.jpg" rel="lightbox[346]"><img class="size-medium wp-image-352" title="Figura 6" src="http://www.edsongoncalves.com.br/wp-content/uploads/2010/05/Figura-6-300x281.jpg" alt="Figura 6 – Local da instalação do Apache Tomcat" width="300" height="281" /></a><p class="wp-caption-text">Figura 6 – Local da instalação do Apache Tomcat</p></div>
<p>Termine o projeto, agora que já possuímos o Tomcat configurado, clicando no botão <strong>Finish</strong>.</p>
<div id="attachment_353" class="wp-caption alignnone" style="width: 310px"><a href="http://www.edsongoncalves.com.br/wp-content/uploads/2010/05/Figura-7.jpg" rel="lightbox[346]"><img class="size-medium wp-image-353" title="Figura 7" src="http://www.edsongoncalves.com.br/wp-content/uploads/2010/05/Figura-7-300x215.jpg" alt="Figura 7 – Servidor Tomcat configurado no projeto" width="300" height="215" /></a><p class="wp-caption-text">Figura 7 – Servidor Tomcat configurado no projeto</p></div>
<p>Como estamos usando o JBoss Tools, na finalização do projeto, o Eclipse lançará uma mensagem perguntando se desejamos mudar de perspectiva. Diga que sim, clicando em <strong>Yes</strong>.</p>
<div id="attachment_354" class="wp-caption alignnone" style="width: 310px"><a href="http://www.edsongoncalves.com.br/wp-content/uploads/2010/05/Figura-8.jpg" rel="lightbox[346]"><img class="size-medium wp-image-354" title="Figura 8" src="http://www.edsongoncalves.com.br/wp-content/uploads/2010/05/Figura-8-300x97.jpg" alt="Figura 8 – Pedido de alteração de perspectiva " width="300" height="97" /></a><p class="wp-caption-text">Figura 8 – Pedido de alteração de perspectiva </p></div>
<p>O Eclipse alterará de perspectiva, colocando na <strong>Web Development</strong>, onde temos outras views na lateral esquerda.</p>
<p>Observe na view <strong>Package Explorer</strong> o projeto com seus arquivos e bibliotecas adicionadas.</p>
<div id="attachment_355" class="wp-caption alignnone" style="width: 236px"><a href="http://www.edsongoncalves.com.br/wp-content/uploads/2010/05/Figura-9.jpg" rel="lightbox[346]"><img class="size-medium wp-image-355" title="Figura 9" src="http://www.edsongoncalves.com.br/wp-content/uploads/2010/05/Figura-9-226x300.jpg" alt="Figura 9 – Projeto criado" width="226" height="300" /></a><p class="wp-caption-text">Figura 9 – Projeto criado</p></div>
<p><strong>Observação:</strong> Um detalhe importante neste formato de projeto é que, diferente de uma aplicação Web criada pelo plugin WTP do Eclipse, é que as bibliotecas no plugin JBoss Tools ficarão em <strong>lib</strong>.</p>
<h3>Importando as bibliotecas</h3>
<p>Vamos agora importar as bibliotecas do projeto. Clique com o direito do mouse sobre o diretório <strong>lib</strong>, na view <strong>Package Explorer</strong> e selecione, no menu de contexto, o item <strong>Import</strong>.</p>
<div id="attachment_356" class="wp-caption alignnone" style="width: 274px"><a href="http://www.edsongoncalves.com.br/wp-content/uploads/2010/05/Figura-10.jpg" rel="lightbox[346]"><img class="size-medium wp-image-356" title="Figura 10" src="http://www.edsongoncalves.com.br/wp-content/uploads/2010/05/Figura-10-264x300.jpg" alt="Figura 10 – Seleção do Import no menu de contexto" width="264" height="300" /></a><p class="wp-caption-text">Figura 10 – Seleção do Import no menu de contexto</p></div>
<p>Na caixa de diálogo <strong>Import</strong>, selecione <strong>General&gt;File System</strong> e clique no botão <strong>Next</strong>.</p>
<div id="attachment_357" class="wp-caption alignnone" style="width: 310px"><a href="http://www.edsongoncalves.com.br/wp-content/uploads/2010/05/Figura-111.jpg" rel="lightbox[346]"><img class="size-medium wp-image-357" title="Figura 11" src="http://www.edsongoncalves.com.br/wp-content/uploads/2010/05/Figura-111-300x220.jpg" alt="Figura 11 – Caixa de diálogo Import com General&gt;File System selecionado" width="300" height="220" /></a><p class="wp-caption-text">Figura 11 – Caixa de diálogo Import com General&gt;File System selecionado</p></div>
<p>Na segunda etapa da importação, selecione no botão <strong>Browse</strong> o local onde se encontram os arquivos do <strong>RichFaces</strong> (as bibliotecas). Selecione somente as listadas anteriormente neste artigo e confirme no botão <strong>Finish</strong>.</p>
<div id="attachment_358" class="wp-caption alignnone" style="width: 310px"><a href="http://www.edsongoncalves.com.br/wp-content/uploads/2010/05/Figura-12.jpg" rel="lightbox[346]"><img class="size-medium wp-image-358" title="Figura 12" src="http://www.edsongoncalves.com.br/wp-content/uploads/2010/05/Figura-12-300x256.jpg" alt="Figura 12 – Selecionando as bibliotecas do RichFaces para importação no diretório lib" width="300" height="256" /></a><p class="wp-caption-text">Figura 12 – Selecionando as bibliotecas do RichFaces para importação no diretório lib</p></div>
<p>Repita o mesmo processo, importando novos arquivos para o diretório <strong>lib</strong> do projeto, só que desta vez, adicionando as bibliotecas do JavaServer Faces 1.2.</p>
<div id="attachment_359" class="wp-caption alignnone" style="width: 310px"><a href="http://www.edsongoncalves.com.br/wp-content/uploads/2010/05/Figura-13.jpg" rel="lightbox[346]"><img class="size-medium wp-image-359" title="Figura 13" src="http://www.edsongoncalves.com.br/wp-content/uploads/2010/05/Figura-13-300x243.jpg" alt="Figura 13 – Seleção das bibliotecas JSF para importação no diretório lib" width="300" height="243" /></a><p class="wp-caption-text">Figura 13 – Seleção das bibliotecas JSF para importação no diretório lib</p></div>
<p>No final, veremos as bibliotecas importadas no projeto, junto as existentes desde sua criação, como mostra a <strong>Figura 14</strong>.</p>
<div id="attachment_360" class="wp-caption alignnone" style="width: 231px"><a href="http://www.edsongoncalves.com.br/wp-content/uploads/2010/05/Figura-14.jpg" rel="lightbox[346]"><img class="size-medium wp-image-360" title="Figura 14" src="http://www.edsongoncalves.com.br/wp-content/uploads/2010/05/Figura-14-221x300.jpg" alt="Figura 14 – Bibliotecas existentes no projeto" width="221" height="300" /></a><p class="wp-caption-text">Figura 14 – Bibliotecas existentes no projeto</p></div>
<h3>Configurando o RichFaces no deployment descriptor</h3>
<p>No arquivo <strong>web.xml</strong> adicione as configurações necessárias para termos o JBoss RichFaces, como mostra a <strong>Listagem 1 </strong> a seguir:</p>
<p><strong>Listagem 1 – O arquivo web.xml com o RichFaces configurado</strong></p>
<pre class="brush:xml">&lt;?xml version="1.0"?&gt;

&lt;web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/javaee

http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"&gt;

&lt;display-name&gt;ProjUtilizandoRichFaces&lt;/display-name&gt;

&lt;!-- Configuração do RichFaces --&gt;

&lt;context-param&gt;

&lt;param-name&gt;org.richfaces.SKIN&lt;/param-name&gt;

&lt;param-value&gt;blueSky&lt;/param-value&gt;

&lt;/context-param&gt;

&lt;filter&gt;

&lt;display-name&gt;RichFaces Filter&lt;/display-name&gt;

&lt;filter-name&gt;richfaces&lt;/filter-name&gt;

&lt;filter-class&gt;org.ajax4jsf.Filter&lt;/filter-class&gt;

&lt;/filter&gt;

&lt;filter-mapping&gt;

&lt;filter-name&gt;richfaces&lt;/filter-name&gt;

&lt;servlet-name&gt;Faces Servlet&lt;/servlet-name&gt;

&lt;dispatcher&gt;REQUEST&lt;/dispatcher&gt;

&lt;dispatcher&gt;FORWARD&lt;/dispatcher&gt;

&lt;dispatcher&gt;INCLUDE&lt;/dispatcher&gt;

&lt;/filter-mapping&gt;

&lt;listener&gt;

&lt;listener-class&gt;com.sun.faces.config.ConfigureListener&lt;/listener-class&gt;

&lt;/listener&gt;

&lt;!-- Faces Servlet --&gt;

&lt;servlet&gt;

&lt;servlet-name&gt;Faces Servlet&lt;/servlet-name&gt;

&lt;servlet-class&gt;javax.faces.webapp.FacesServlet&lt;/servlet-class&gt;

&lt;load-on-startup&gt;1&lt;/load-on-startup&gt;

&lt;/servlet&gt;

&lt;!-- Faces Servlet Mapping --&gt;

&lt;servlet-mapping&gt;

&lt;servlet-name&gt;Faces Servlet&lt;/servlet-name&gt;

&lt;url-pattern&gt;*.jsf&lt;/url-pattern&gt;

&lt;/servlet-mapping&gt;

&lt;login-config&gt;

&lt;auth-method&gt;BASIC&lt;/auth-method&gt;

&lt;/login-config&gt;

&lt;/web-app&gt;
</pre>
<p>O RichFaces possui um template padrão para seus componentes. A configuração deste template é feita no <strong>web.xml</strong>, através dos seguintes elementos:</p>
<pre class="brush:xml">&lt;context-param&gt;
&lt;param-name&gt;org.richfaces.SKIN&lt;/param-name&gt;
&lt;param-value&gt;blueSky&lt;/param-value&gt;
&lt;/context-param&gt;</pre>
<p>Os temas existentes até o momento são:</p>
<ul>
<li>DEFAULT</li>
<li>plain</li>
<li>emeraldTown</li>
<li>blueSky</li>
<li>wine</li>
<li>japanCherry</li>
<li>ruby</li>
<li>classic</li>
<li>deepMarine</li>
<li>NULL</li>
<li>laguna</li>
<li>darkX</li>
<li>glassX</li>
</ul>
<p>Para funcionar os componentes RichFaces e Ajax4fjsf, incluímos o filtro <strong>org.ajax4jsf.Filter</strong>, com os seguintes elementos:</p>
<pre class="brush:xml">&lt;filter&gt;
&lt;display-name&gt;RichFaces Filter&lt;/display-name&gt;
&lt;filter-name&gt;richfaces&lt;/filter-name&gt;
&lt;filter-class&gt;org.ajax4jsf.Filter&lt;/filter-class&gt;
&lt;/filter&gt;
&lt;filter-mapping&gt;
&lt;filter-name&gt;richfaces&lt;/filter-name&gt;
&lt;servlet-name&gt;Faces Servlet&lt;/servlet-name&gt;
&lt;dispatcher&gt;REQUEST&lt;/dispatcher&gt;
&lt;dispatcher&gt;FORWARD&lt;/dispatcher&gt;
&lt;dispatcher&gt;INCLUDE&lt;/dispatcher&gt;
&lt;/filter-mapping&gt;</pre>
<h3>Criando o JavaBean Texto</h3>
<p>Com o direito do mouse sobre o projeto, selecione <strong>New&gt;Class</strong> no menu de contexto.</p>
<p>Na caixa de diálogo <strong>New Java Class</strong>, preencha o pacote (<strong>br.com.integrator</strong>) e o nome da classe, no caso <strong>Texto</strong>, em <strong>Name</strong>. Confirme no botão <strong>Finish</strong>.</p>
<div id="attachment_361" class="wp-caption alignnone" style="width: 266px"><a href="http://www.edsongoncalves.com.br/wp-content/uploads/2010/05/Figura-18.jpg" rel="lightbox[346]"><img class="size-medium wp-image-361" title="Figura 18" src="http://www.edsongoncalves.com.br/wp-content/uploads/2010/05/Figura-18-256x300.jpg" alt="Figura 15 – A classe Texto" width="256" height="300" /></a><p class="wp-caption-text">Figura 15 – A classe Texto</p></div>
<p>Altere a classe <strong>Texto</strong> conforme mostrado na <strong>Listagem 2</strong>.</p>
<p><strong>Listagem 2 – O JavaBean Texto</strong></p>
<pre class="brush:java">package br.com.integrator;

public class Texto {

private String texto;

public String getTexto() {
return texto;
}

public void setTexto(String texto) {
this.texto = texto;
}
}</pre>
<h3>Configurando o Managed Bean</h3>
<p>Abra o arquivo <strong>faces-config.xml</strong>, e clique na aba inferior <strong>Tree</strong>. Em <strong>Faces Config Editor</strong>, clique no item <strong>Managed Beans</strong>. Na lateral direita, clique em <strong>Add</strong>, como mostra a <strong>Figura 16</strong>.</p>
<div id="attachment_362" class="wp-caption alignnone" style="width: 310px"><a href="http://www.edsongoncalves.com.br/wp-content/uploads/2010/05/Figura-19.jpg" rel="lightbox[346]"><img class="size-medium wp-image-362" title="Figura 19" src="http://www.edsongoncalves.com.br/wp-content/uploads/2010/05/Figura-19-300x132.jpg" alt="Figura 16 – Configurando um Managed Bean no arquivo faces-config.xml" width="300" height="132" /></a><p class="wp-caption-text">Figura 16 – Configurando um Managed Bean no arquivo faces-config.xml</p></div>
<p>Na caixa de diálogo <strong>New Managed Bean</strong>, mantenha <strong>Scope </strong>como <strong>request</strong>. Em <strong>Class</strong>, clique em <strong>Browse</strong> e selecione a classe <strong>br.com.integrator.Texto</strong>. Digite o nome, em <strong>Name</strong>, do Managed Bean de <strong>textoBean</strong>. Confirme em <strong>Finish</strong>.</p>
<div id="attachment_363" class="wp-caption alignnone" style="width: 310px"><a href="http://www.edsongoncalves.com.br/wp-content/uploads/2010/05/Figura-20.jpg" rel="lightbox[346]"><img class="size-medium wp-image-363" title="Figura 20" src="http://www.edsongoncalves.com.br/wp-content/uploads/2010/05/Figura-20-300x227.jpg" alt="Figura 17 – Configurando o Managed Bean textoBean" width="300" height="227" /></a><p class="wp-caption-text">Figura 17 – Configurando o Managed Bean textoBean</p></div>
<p>Se clicarmos em <strong>Source</strong>, veremos que a ferramenta configurou visualmente o XML de <strong>faces-config.xml</strong> como na <strong>Listagem 3</strong>.</p>
<p><strong>Listagem 3 – O managed bean textoBean adicionado ao faces-config.xml</strong></p>
<pre class="brush:xml">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;faces-config version="1.2" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd"&gt;

&lt;managed-bean&gt;
&lt;managed-bean-name&gt;textoBean&lt;/managed-bean-name&gt;
&lt;managed-bean-class&gt;br.com.integrator.Texto&lt;/managed-bean-class&gt;
&lt;managed-bean-scope&gt;request&lt;/managed-bean-scope&gt;
&lt;/managed-bean&gt;

&lt;/faces-config&gt;</pre>
<div id="attachment_364" class="wp-caption alignnone" style="width: 310px"><a href="http://www.edsongoncalves.com.br/wp-content/uploads/2010/05/Figura-211.jpg" rel="lightbox[346]"><img class="size-medium wp-image-364" title="Figura 21" src="http://www.edsongoncalves.com.br/wp-content/uploads/2010/05/Figura-211-300x122.jpg" alt="Figura 18 – O arquivo faces-config.xml com o managed bean textoBean configurado" width="300" height="122" /></a><p class="wp-caption-text">Figura 18 – O arquivo faces-config.xml com o managed bean textoBean configurado</p></div>
<h3>Criando a página JSF com suporte ao RichFaces</h3>
<p>Mude agora para a view <strong>Web Projects</strong>, que está ao lado de <strong>Package Explorer</strong>.</p>
<div id="attachment_365" class="wp-caption alignnone" style="width: 310px"><a href="http://www.edsongoncalves.com.br/wp-content/uploads/2010/05/Figura-15.jpg" rel="lightbox[346]"><img class="size-medium wp-image-365" title="Figura 15" src="http://www.edsongoncalves.com.br/wp-content/uploads/2010/05/Figura-15-300x206.jpg" alt="Figura 19 – A view Web Projects" width="300" height="206" /></a><p class="wp-caption-text">Figura 19 – A view Web Projects</p></div>
<p>Com o direito do mouse sobre <strong>WebContent</strong>, vá no menu de contexto em <strong>New&gt;File&gt;JSP</strong>. No diálogo <strong>New File JSP</strong>, dê o nome no arquivo de <strong>richfaces</strong>, selecione <strong>JSFBasePage</strong> em <strong>Template</strong> e prossiga no assistente, clicando em <strong>Next</strong>.</p>
<div id="attachment_366" class="wp-caption alignnone" style="width: 310px"><a href="http://www.edsongoncalves.com.br/wp-content/uploads/2010/05/Figura-16.jpg" rel="lightbox[346]"><img class="size-medium wp-image-366" title="Figura 16" src="http://www.edsongoncalves.com.br/wp-content/uploads/2010/05/Figura-16-300x238.jpg" alt="Figura 20 – Criando uma página JSF" width="300" height="238" /></a><p class="wp-caption-text">Figura 20 – Criando uma página JSF</p></div>
<p>Na última etapa de criação da página, marque as tag libraries: <strong>JBoss Ajax4jsf</strong>, <strong>JBoss RichFaces</strong>, <strong>JSF Core</strong> e <strong>JSF HTML</strong>. Finalize no botão <strong>Finish</strong>.</p>
<div id="attachment_367" class="wp-caption alignnone" style="width: 310px"><a href="http://www.edsongoncalves.com.br/wp-content/uploads/2010/05/Figura-17.jpg" rel="lightbox[346]"><img class="size-medium wp-image-367" title="Figura 17" src="http://www.edsongoncalves.com.br/wp-content/uploads/2010/05/Figura-17-300x263.jpg" alt="Figura 21 – Seleção das taglibs da página" width="300" height="263" /></a><p class="wp-caption-text">Figura 21 – Seleção das taglibs da página</p></div>
<p>Com a página <strong>richfaces.jsp</strong> criada e aberta no editor, altere-a deixando exatamente como mostrado na <strong>Listagem 4 </strong> a seguir:</p>
<p><strong>Listagem 4 – A página richfaces.jsp completa</strong></p>
<pre class="brush:html">&lt;%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %&gt;
&lt;%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %&gt;
&lt;%@ taglib uri="http://richfaces.org/rich" prefix="rich" %&gt;
&lt;%@ taglib uri="http://richfaces.org/a4j" prefix="a4j" %&gt;
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;Minha Primeira Página com JBoss RichFaces&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;f:view&gt;
&lt;h:form&gt;

Digite seu texto aqui:
&lt;h:inputText id="texto" value="#{textoBean.texto}"&gt;
&lt;a4j:support event="onkeyup" reRender="resultado"/&gt;
&lt;/h:inputText&gt;
&lt;br /&gt;
Resultado:
&lt;strong&gt;
&lt;h:outputLabel id="resultado" value="#{textoBean.texto}" /&gt;
&lt;/strong&gt;

&lt;/h:form&gt;
&lt;/f:view&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
<div id="attachment_368" class="wp-caption alignnone" style="width: 310px"><a href="http://www.edsongoncalves.com.br/wp-content/uploads/2010/05/Figura-22.jpg" rel="lightbox[346]"><img class="size-medium wp-image-368" title="Figura 22" src="http://www.edsongoncalves.com.br/wp-content/uploads/2010/05/Figura-22-300x222.jpg" alt="Figura 22 – Página richfaces.jsp no editor visual e de códigos do JBoss Tools" width="300" height="222" /></a><p class="wp-caption-text">Figura 22 – Página richfaces.jsp no editor visual e de códigos do JBoss Tools</p></div>
<p>Observe que o editor de códigos do JBoss Tools deverá reconhecer o Managed Bean.</p>
<div id="attachment_369" class="wp-caption alignnone" style="width: 310px"><a href="http://www.edsongoncalves.com.br/wp-content/uploads/2010/05/Figura-24.jpg" rel="lightbox[346]"><img class="size-medium wp-image-369" title="Figura 24" src="http://www.edsongoncalves.com.br/wp-content/uploads/2010/05/Figura-24-300x68.jpg" alt="Figura 23 – Reconhecimento do Managed Bean pelo editor de códigos" width="300" height="68" /></a><p class="wp-caption-text">Figura 23 – Reconhecimento do Managed Bean pelo editor de códigos</p></div>
<p>Por fim, execute a página indo ao meu <strong>Run&gt; Run As&gt;Run on Server</strong>. Na caixa de diálogo, deixe o Tomcat como escolha para executar o projeto e clique no botão <strong>Next</strong>.</p>
<div id="attachment_370" class="wp-caption alignnone" style="width: 292px"><a href="http://www.edsongoncalves.com.br/wp-content/uploads/2010/05/Figura-25.jpg" rel="lightbox[346]"><img class="size-medium wp-image-370" title="Figura 25" src="http://www.edsongoncalves.com.br/wp-content/uploads/2010/05/Figura-25-282x300.jpg" alt="Figura 24 – Selecionando o servidor Java para executar o projeto" width="282" height="300" /></a><p class="wp-caption-text">Figura 24 – Selecionando o servidor Java para executar o projeto</p></div>
<p>Adicione em <strong>Configured </strong>o projeto e clique no botão <strong>Finish</strong>. Neste momento o Apache Tomcat iniciará, executando a página JSF contendo o AJAX do RichFaces.</p>
<div id="attachment_371" class="wp-caption alignnone" style="width: 310px"><a href="http://www.edsongoncalves.com.br/wp-content/uploads/2010/05/Figura-26.jpg" rel="lightbox[346]"><img class="size-medium wp-image-371" title="Figura 26" src="http://www.edsongoncalves.com.br/wp-content/uploads/2010/05/Figura-26-300x293.jpg" alt="Figura 25 – Finalizando o assistente para executar o projeto no Apache Tomcat" width="300" height="293" /></a><p class="wp-caption-text">Figura 25 – Finalizando o assistente para executar o projeto no Apache Tomcat</p></div>
<p>O aplicativo é de simples compreensão. Simplesmente o texto digitado no campo de texto é enviado ao servidor, levado ao Managed Bean textoBean, representado pela classe Texto, cujo é retornado ao label abaixo, em <strong>Resultado</strong>. Em uma página JSF comum, teríamos que submeter a página para termos tal resultado. Como estamos usando AJAX, o texto vai sendo digitado e enviado a cada nova letra para o servidor e retornada a página sem um reload no browser.</p>
<div id="attachment_372" class="wp-caption alignnone" style="width: 310px"><a href="http://www.edsongoncalves.com.br/wp-content/uploads/2010/05/Figura-23.jpg" rel="lightbox[346]"><img class="size-medium wp-image-372" title="Figura 23" src="http://www.edsongoncalves.com.br/wp-content/uploads/2010/05/Figura-23-300x88.jpg" alt="Figura 26 – A página executada" width="300" height="88" /></a><p class="wp-caption-text">Figura 26 – A página executada</p></div>
<p>Este envio ao servidor sem reload na página e o retorno é feito graças ao Ajax4jsf, pela tag &lt;a4j:support /&gt;:</p>
<p>&lt;h:inputText id=<em>&#8220;texto&#8221;</em> value=&#8221;#{textoBean.texto}&#8221;&gt;</p>
<p><strong> </strong><strong>&lt;a4j:support event=&#8221;onkeyup&#8221; reRender=&#8221;resultado&#8221;/&gt;</strong></p>
<p>&lt;/h:inputText&gt;</p>
<p>Esta tag trabalha com o evento JavaScript onkeyup, que chama o servidor e renderiza o resultado onde o atributo reRender estiver apontando. Observe que esta tag está dentro da tag JSF &lt;h:inputText/&gt;, que é exatamente onde ela trabalhará para receber o evento e se comunicar com o servidor, transmitindo as informações nela contidas.</p>
<p><strong>No próximo artigo </strong></p>
<p>No próximo artigo sobre RichFaces, vamos ver como trabalhar com Upload de arquivos, cuja dúvida é muito comum nesta biblioteca.</p>
<p>Até o próximo artigo pessoALL.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.edsongoncalves.com.br/2010/05/22/ajax-com-jsf-1-2-utilizando-jboss-richfaces/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
	</channel>
</rss>

