14.04.2013 Views

Download do termo de referência - Sema

Download do termo de referência - Sema

Download do termo de referência - Sema

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Conteú<strong>do</strong><br />

FACELETS E LAYOUT CSS ............................................................................................................... 2<br />

O ECLIPSE IDE ..................................................................................................................................... 2<br />

OBTENDO E INSTALANDO O ECLIPSE IDE ................................................................................ 2<br />

O PLUG-IN JBOSS TOOLS ................................................................................................................. 3<br />

INICIANDO NA PLATAFORMA ECLIPSE ..................................................................................... 3<br />

BAIXANDO O JAVASERVER FACES .............................................................................................. 4<br />

AS BIBLIOTECAS DO JAVASERVER FACES ............................................................................... 4<br />

ADICIONANDO O JAVASERVER FACES AO PROJETO NO ECLIPSE IDE .......................... 5<br />

ONDE BAIXAR O FACELETS ........................................................................................................... 6<br />

CRIANDO UM PROJETO SIMPLES COM FACELETS ................................................................ 6<br />

CRIANDO UM JAVABEAN .............................................................................................................. 11<br />

O ARQUIVO FACES-CONFIG.XML ............................................................................................... 13<br />

O ARQUIVO WEB.XML .................................................................................................................... 15<br />

AS PÁGINAS DA APLICAÇÃO ........................................................................................................ 15<br />

Página 1<br />

www.integrator.com.br


Facelets e Layout CSS<br />

JavaServer Faces é muito bom para <strong>de</strong>senvolver aplicações Web, principalmente se você pu<strong>de</strong>r contar<br />

com uma boa ferramenta como o Eclipse IDE. Entretanto, po<strong>de</strong>mos unir as facilida<strong>de</strong>s <strong>do</strong>s<br />

componentes Faces com as características (X)HTML.<br />

Facelets é um framework <strong>de</strong> templates JavaServer Faces, basea<strong>do</strong> em alguns simples princípios:<br />

• Criação <strong>de</strong> uma árvore <strong>de</strong> objetos UIComponent e conteú<strong>do</strong> entrelaça<strong>do</strong> completamente com o<br />

processo <strong>de</strong> ciclo <strong>de</strong> vida <strong>do</strong> JavaServer Faces;<br />

• É mais rápi<strong>do</strong>, pois não utiliza o engine <strong>do</strong> JSP para transformar em Servlets;<br />

• Suporte a templates reutilizáveis, aumentan<strong>do</strong> a produtivida<strong>de</strong> na criação <strong>de</strong> numerosas páginas,<br />

crian<strong>do</strong> uma base padrão;<br />

• Integração com os processos Faces e com as tags (X)HTML (usa diretamente o XHTML como<br />

tecnologia view <strong>do</strong> JSF) como membros da árvore <strong>de</strong> componentes. Isso possibilita a injeção <strong>de</strong><br />

componentes JSF com um simples atributo jsfc;<br />

• Erros mais amigáveis e com maior precisão;<br />

• Eliminação <strong>de</strong> tags JSF como e .<br />

Graças a estas integrações, as aplicações po<strong>de</strong>m ser escritas para serem visualizadas em uma interface<br />

Web 2.0.<br />

O Eclipse IDE<br />

O Eclipse IDE, chama<strong>do</strong> por muitos <strong>de</strong> Plataforma Eclipse, é consi<strong>de</strong>rada por uma gran<strong>de</strong> maioria <strong>de</strong><br />

<strong>de</strong>senvolve<strong>do</strong>res Java como a melhor ferramenta para <strong>de</strong>senvolvimento <strong>de</strong>ssa linguagem.<br />

Desenvolvi<strong>do</strong> inicialmente pela IBM e libera<strong>do</strong> o código fonte a comunida<strong>de</strong>, ao qual se criou a<br />

fundação Eclipse (Eclipse Foundation), sua gran<strong>de</strong> vantagem, na atualida<strong>de</strong>, está no uso <strong>de</strong> seus<br />

assistentes <strong>de</strong> código e gran<strong>de</strong> gama <strong>de</strong> plug-ins, po<strong>de</strong>n<strong>do</strong> se adaptar a qualquer situação <strong>de</strong><br />

<strong>de</strong>senvolvimento.<br />

Até o momento em que esse tutorial está sen<strong>do</strong> escrito, a versão mais atual <strong>do</strong> Eclipse é a 3.3.<br />

Obten<strong>do</strong> e instalan<strong>do</strong> o Eclipse IDE<br />

Para <strong>de</strong>senvolver aplicações Web usan<strong>do</strong> a plataforma Eclipse, primeiramente você <strong>de</strong>verá ter o<br />

Eclipse em um ambiente volta<strong>do</strong> para o <strong>de</strong>senvolvimento Java EE. Para obter o Eclipse IDE, já<br />

configura<strong>do</strong> com o ambiente Web, vá ao en<strong>de</strong>reço http://www.eclipse.org/<strong>do</strong>wnloads/.<br />

Ao carregar a página, vá ao link Eclipse IDE for Java EE Developers.<br />

Figura 1 – Seleção <strong>do</strong> Eclipse IDE que será baixa<strong>do</strong> na área <strong>de</strong> <strong>do</strong>wnloads <strong>do</strong> site oficial<br />

Página 2<br />

www.integrator.com.br


Ao baixar, <strong>de</strong>scompacte em um local <strong>de</strong>seja<strong>do</strong> <strong>de</strong> sua máquina.<br />

O plug-in JBoss Tools<br />

Após a <strong>de</strong>scompactação <strong>do</strong> Eclipse, sem executá-lo, você vai baixar o plug-in JBoss Tools, que<br />

auxiliará no <strong>de</strong>senvolvimento da aplicação. Entre no en<strong>de</strong>reço<br />

http://www.jboss.org/projects/<strong>do</strong>wnload/ e vá até Tools. Clique no link JBoss Tools, como exibe a<br />

Figura 2.<br />

Figura 2 – Seleção <strong>do</strong> JBoss Tools para <strong>do</strong>wnload<br />

Após baixar, o arquivo compacta<strong>do</strong> possui um diretório chama<strong>do</strong> eclipse, conten<strong>do</strong> a estrutura que<br />

será necessária para ser adicionada a instalação <strong>do</strong> Eclipse atual.<br />

Simplesmente cole sobre o diretório eclipse original, obti<strong>do</strong> da <strong>de</strong>scompactação anterior, que o sistema<br />

operacional se encarregará <strong>de</strong> adicionar os plug-ins existentes.<br />

Inician<strong>do</strong> na plataforma Eclipse<br />

Após <strong>de</strong>scompactar o Eclipse, você po<strong>de</strong> iniciá-lo diretamente pelo executável eclipse.exe no<br />

Win<strong>do</strong>ws.<br />

No Linux você po<strong>de</strong> iniciar o Eclipse da seguinte maneira, <strong>de</strong>s<strong>de</strong> que haja as <strong>de</strong>vidas permissões:<br />

shell# /home/edson/eclipse/./eclipse<br />

Assim que iniciar o Eclipse IDE, você po<strong>de</strong> selecionar ou aceitar o local on<strong>de</strong> ele vai armazenar seus<br />

projetos, o chama<strong>do</strong> Workspace. Caso não queira mais ter essa caixa <strong>de</strong> diálogo aparecen<strong>do</strong>, marque a<br />

opção Use this as the <strong>de</strong>fault and <strong>do</strong> not ask again. Confirme após clican<strong>do</strong> no botão OK.<br />

Página 3<br />

www.integrator.com.br


Figura 3 – O Workspace para o <strong>de</strong>senvolvimento das aplicações<br />

Baixan<strong>do</strong> o JavaServer Faces<br />

Para trabalhar com o JavaServer Faces, primeiramente será preciso configurar os arquivos e a estrutura<br />

necessária.<br />

O container Servlet usa<strong>do</strong> para este tutorial será o Tomcat 6 que, por padrão, não possui suporte direto<br />

ao JavaServer Faces, ou seja, não contém as bibliotecas necessárias para o <strong>de</strong>senvolvimento com o<br />

mesmo.<br />

Para baixar o JSF, faça <strong>do</strong>wnload no en<strong>de</strong>reço<br />

http://java.sun.com/j2ee/javaserverfaces/<strong>do</strong>wnload.html. Como irá trabalhar com JavaServer Faces<br />

volta<strong>do</strong> para um container compatível com a tecnologia Java EE 5, você <strong>de</strong>verá baixar a versão JSF<br />

1.2, a utilizada nesse tutorial. Ao baixar o arquivo, simplesmente <strong>de</strong>sempacote em um diretório <strong>de</strong> sua<br />

escolha.<br />

Atenção: Caso queira utilizar o GlassFish, esse passo é <strong>de</strong>snecessário.<br />

As bibliotecas <strong>do</strong> JavaServer Faces<br />

Para ter o JavaServer Faces 1.2 em sua aplicação, você possui <strong>do</strong>is arquivos <strong>do</strong> tipo JAR:<br />

1. jsf-api.jar<br />

2. jsf-impl.jar<br />

Para o trabalho com JSF 1.1, há a necessida<strong>de</strong> <strong>de</strong> oito arquivos <strong>do</strong> tipo JAR que incluem as bibliotecas<br />

<strong>do</strong> JSTL e Commons:<br />

Quatro JARs Commons:<br />

1. commons-beanutils.jar<br />

2. commons-collections.jar<br />

3. commons-digester.jar<br />

4. commons-logging.jar<br />

Dois JARs JSF:<br />

Página 4<br />

www.integrator.com.br


1. jsf-api.jar<br />

2. jsf-impl.jar<br />

Dois JARs JSTL:<br />

1. jstl.jar<br />

2. standard.jar<br />

Para torná-los disponíveis em sua aplicação é simples, bastan<strong>do</strong> apenas colocar esses arquivos lista<strong>do</strong>s<br />

e no diretório lib, encontra<strong>do</strong> em WEB-INF <strong>de</strong> sua aplicação Web.<br />

Porém, como vamos utilizar um ambiente <strong>de</strong> trabalho basea<strong>do</strong> em IDE, será mais fácil essa<br />

configuração.<br />

Configuran<strong>do</strong> o JavaServer Faces no Eclipse IDE<br />

O JSF 1.2 não vem com o plug-in e nem com o Eclipse, assim como o Tomcat. Isso significa que você<br />

<strong>de</strong>ve adicioná-lo ao projeto separadamente. Porém, como você po<strong>de</strong>rá fazer mais <strong>de</strong> um projeto usan<strong>do</strong><br />

JSF, será mais fácil criar uma biblioteca personalizada para que possamos adicionar no projeto com<br />

mais facilida<strong>de</strong>.<br />

Vá ao menu Win<strong>do</strong>w e clique em Preferences. Na caixa <strong>de</strong> diálogo Preferences, digite na parte<br />

superior, on<strong>de</strong> aparece type filter text, a palavra user. Observe que haverá uma filtragem, on<strong>de</strong> você<br />

<strong>de</strong>verá selecionar User Libraries.<br />

Em User Libraries, clique no botão New. Na caixa <strong>de</strong> diálogo New User Library digite JSF 1.2 em<br />

User library name e confirme.<br />

Figura 4 – Adição das bibliotecas JSF 1.2 ao Eclipse IDE<br />

Com a biblioteca selecionada, clique no botão Add JARs. Selecione os arquivos JARs (jsf-api.jar e<br />

jsf-impl.jar) <strong>de</strong>scompacta<strong>do</strong>s <strong>do</strong> JSF 1.2 que você baixou no início <strong>de</strong>ste capítulo. Confirme a caixa<br />

<strong>de</strong> diálogo Preferences.<br />

Página 5<br />

www.integrator.com.br


Figura 5 – A biblioteca <strong>de</strong> usuário JSF 1.2 configurada com os JARs<br />

O Facelets<br />

Você po<strong>de</strong> baixar o Facelets na sua última versão no en<strong>de</strong>reço oficial https://facelets.<strong>de</strong>v.java.net/.<br />

Na parte inferior <strong>do</strong> site, há o link <strong>do</strong>wnloadable from here.<br />

Crian<strong>do</strong> um projeto simples com Facelets<br />

O Eclipse IDE possui mais opções <strong>de</strong> criação <strong>de</strong> páginas com o framework JavaServer Faces <strong>de</strong>vi<strong>do</strong> a<br />

utilização <strong>do</strong> plug-in JBoss Tools.<br />

Vá ao menu File, em New, e selecione Project. Na caixa <strong>de</strong> diálogo New Project, expanda JBoss<br />

Tools Web > JSF e selecione JSF Project. Clique no botão Next para prosseguir.<br />

Página 6<br />

www.integrator.com.br


Figura 6 – Seleção <strong>de</strong> JSF Project <strong>do</strong> plug-in JBoss Tools<br />

Digite TrabComFacelets no campo Project Name e altere para JSF 1.2 with Facelets em JSF<br />

Environment. Mantenha então a opção FaceletsBlankWithoutLibs em Template e clique no botão<br />

Next.<br />

Figura 7 – Novo projeto JSF com Facelets<br />

Na terceira etapa será necessário adicionar um servi<strong>do</strong>r ao Eclipse IDE. Clique no botão New, em<br />

Runtime. Na caixa <strong>de</strong> diálogo New Server Runtime, expanda Apache e selecione Apache Tomcat<br />

v6.0. Clique no botão Next para prosseguir.<br />

Página 7<br />

www.integrator.com.br


Figura 8 – Seleção <strong>do</strong> Apache Tomcat 6<br />

Em seguida, em Tomcat installation directory, clique no botão Browse e selecione o Tomcat<br />

instala<strong>do</strong> em sua máquina. Conclua a adição <strong>do</strong> Tomcat 6 através <strong>do</strong> botão Finish.<br />

Figura 9 – Apache Tomcat seleciona<strong>do</strong> no seu local <strong>de</strong> instalação no Win<strong>do</strong>ws<br />

Após a adição <strong>do</strong> Runtime, clique no botão Finish para concluir o assistente.<br />

www.integrator.com.br<br />

Página 8


Figura 10 – Final da criação <strong>do</strong> projeto no Eclipse IDE<br />

Assim que finalizar, a caixa <strong>de</strong> diálogo Open Associated Perspective sugira, perguntan<strong>do</strong> se <strong>de</strong>seja<br />

abrir a perspectiva associada ao projeto. Clique no botão Yes para confirmar.<br />

Figura 11 – Diálogo pergunta<strong>do</strong> se <strong>de</strong>seja abrir a perspectiva associada ao projeto<br />

Adicionan<strong>do</strong> a biblioteca JSF criada ao projeto<br />

Para adicionar ao projeto a biblioteca JSF criada, clique com o direito <strong>do</strong> mouse sobre ele e selecione o<br />

item Properties no menu <strong>de</strong> contexto.<br />

Na caixa <strong>de</strong> diálogo Properties for TrabComFacelets, em Java Build Path, vá até a guia Libraries<br />

e clique no botão Add Library.<br />

Em Add Library selecione User Library e clique no botão Next.<br />

Página 9<br />

www.integrator.com.br


Figura 12 – Adicionan<strong>do</strong> uma biblioteca <strong>de</strong> usuário configurada<br />

Na segunda etapa, selecione a biblioteca JSF 1.2 criada e clique em Finish.<br />

Figura 13 – Seleção da biblioteca JSF 1.2<br />

Assim que finalizar, você possui a biblioteca no projeto. Clique em J2EE Module Depen<strong>de</strong>ncies na<br />

lateral esquerda. Como a alteração não foi aplicada, a caixa <strong>de</strong> diálogo Setting Java Build Path<br />

surgirá. Confirme no botão Apply para aplicar as alterações.<br />

Observe que em J2EE Module Depen<strong>de</strong>ncies agora existe o JAR/Module JSF 1.2. Marque o<br />

checkbox e confirme.<br />

Página 10<br />

www.integrator.com.br


Crian<strong>do</strong> um JavaBean<br />

Clique com o direito <strong>do</strong> mouse sobre o projeto, na view Package, e selecione New > Class. Na caixa<br />

<strong>de</strong> diálogo New Java Class, digite Cadastro em Name. Altere Package para br.com.integrator (ou o<br />

nome <strong>do</strong> pacote que <strong>de</strong>sejar). Conclua em Finish.<br />

Altere a classe como mostra<strong>do</strong> na Listagem 1 a seguir.<br />

Listagem 1 – A classe Cadastro.java<br />

package br.com.integrator;<br />

public class Cadastro {<br />

private String nome;<br />

private String email;<br />

private String telefone;<br />

//get e set omiti<strong>do</strong><br />

}<br />

Para adicionar os méto<strong>do</strong>s Getters e Setters no Eclipse, vá ao menu Source > Generate Getters and<br />

Setters. Clique no botão Select All na caixa <strong>de</strong> diálogo Generate Getters and Setters e confirme.<br />

Figura 14 – Geran<strong>do</strong> Getters e Setters no Eclipse IDE<br />

Página 11<br />

www.integrator.com.br


O Bean Cadastro possui apenas três atributos necessários, com os méto<strong>do</strong>s getters e setters, para que<br />

os valores sejam envia<strong>do</strong>s pelos campos <strong>de</strong> um formulário que será cria<strong>do</strong> adiante.<br />

Crie uma nova classe, a chame <strong>de</strong> Controle, e a coloque no pacote br.com.integrator.controller.<br />

Altere como mostra<strong>do</strong> na Listagem 2 a seguir:<br />

Listagem 2 – A classe Controle<br />

…<br />

public class Controle {<br />

private Cadastro cadastro;<br />

private List cadList = new ArrayList();<br />

public Controle() {<br />

cadastro = new Cadastro();<br />

}<br />

public Cadastro getCadastro() {<br />

return cadastro;<br />

}<br />

public void setCadastro(Cadastro cadastro) {<br />

this.cadastro = cadastro;<br />

}<br />

private void adicionar(Cadastro c){<br />

cadList.add(c);<br />

}<br />

public DataMo<strong>de</strong>l getTo<strong>do</strong>s() {<br />

return new ListDataMo<strong>de</strong>l(cadList);<br />

}<br />

public String novo(){<br />

cadastro = new Cadastro();<br />

return "cadastro";<br />

}<br />

public String salvar( ) {<br />

this.adicionar(cadastro);<br />

FacesContext context = FacesContext.getCurrentInstance( );<br />

FacesMessage message = new FacesMessage("Salvo com sucesso!");<br />

context.addMessage(null, message);<br />

return "cadastra<strong>do</strong>s";<br />

www.integrator.com.br<br />

Página 12


}<br />

}<br />

Faça as importações da classe com o atalho Ctrl + Shift + O .<br />

Com a intenção <strong>de</strong> simular um banco <strong>de</strong> da<strong>do</strong>s nesse exemplo, você cria na classe um List da classe<br />

Cadastro.<br />

Para salvar o cadastro, a página que será criada chamará o méto<strong>do</strong> salvar() que, por sua vez, chama o<br />

méto<strong>do</strong> adicionar(), transmitin<strong>do</strong> como parâmetro a instância <strong>de</strong> Cadastro, que populará o List.<br />

A página que será exibida após o cadastro, exibirá os da<strong>do</strong>s salvos no List, através <strong>de</strong> uma tabela<br />

populada pelo méto<strong>do</strong> getTo<strong>do</strong>s(), que retorna um DataMo<strong>de</strong>l, da classe Controle.<br />

O arquivo faces-config.xml<br />

Para que o Facelets funcione em sua aplicação Web, é necessário configurar o arquivo facesconfig.xml<br />

com a seguinte linha:<br />

<br />

com.sun.facelets.FaceletViewHandler<br />

<br />

Uma das gran<strong>de</strong>s características <strong>de</strong> JavaServer Faces é a sua flexibilida<strong>de</strong>. Ele é <strong>de</strong>senha<strong>do</strong> com um<br />

número <strong>de</strong> interfaces plugáveis, e uma <strong>de</strong>las é ViewHandler. Então é necessário adicionar um<br />

elemento , conten<strong>do</strong> o elemento para que Facelets seja “pluga<strong>do</strong>” ao<br />

JavaServer Faces.<br />

A classe principal para compilar o <strong>do</strong>cumento Facelets é a SaxCompiler, encontrada no pacote<br />

com.sun.facelets.compiler. Quan<strong>do</strong> o FaceletViewHandler é inicializa<strong>do</strong>, este instancia esta classe e<br />

usa como argumento para o construtor da classe DefaultFaceletFactory (com.sun.facelets.impl).<br />

Embora existam muitas classes em com.sun.facelets.compiler, basicamente, Facelets usa o<br />

SAXParser para analisar gramaticalmente os <strong>do</strong>cumentos XHTML.<br />

O FaceletViewHandler é invoca<strong>do</strong> em duas fases <strong>do</strong> ciclo <strong>de</strong> vida <strong>de</strong> JSF: Restaurar a apresentação<br />

e Ren<strong>de</strong>rizar a resposta.<br />

Na fase <strong>de</strong> Restauração da Apresentação, a ViewHandler cria uma apresentação disponível para<br />

processar em fases subseqüentes. Aqui, o servlet Faces procura FacesContext para a requisição. Se<br />

FacesContext contém um UIRootView, o servlet Faces chama o méto<strong>do</strong> restoreView <strong>de</strong><br />

ViewHandler, que restabelece o esta<strong>do</strong> da apresentação, armazenan<strong>do</strong> o UIRootView em<br />

FacesContext e pegan<strong>do</strong> o valor <strong>de</strong>stes componentes que possuem ligações em value. Se<br />

FacesContext não contém um UIRootView existente, o servlet Faces chama o méto<strong>do</strong> createView <strong>de</strong><br />

ViewHandler, o qual cria uma nova apresentação, ren<strong>de</strong>rizan<strong>do</strong> a resposta e armazenan<strong>do</strong> o<br />

UIRootView em FacesContext. Até o final <strong>de</strong>sta fase, FacesContext contém um UIRootView, que é<br />

uma apresentação prévia restabelecida ou uma nova apresentação.<br />

Na fase <strong>de</strong> Ren<strong>de</strong>rizar a Resposta, o servlet Faces chama o méto<strong>do</strong> ren<strong>de</strong>rView da classe<br />

ViewHandler, o que ren<strong>de</strong>riza a resposta para o cliente para a atual apresentação selecionada e salva o<br />

esta<strong>do</strong> da resposta para processamento em requisições posteriores. A ViewHandler ren<strong>de</strong>riza a árvore<br />

www.integrator.com.br<br />

Página 13


<strong>de</strong> componente JSF e <strong>de</strong>lega o esta<strong>do</strong> salvo para a classe StateManager. Em ambas as fases, a<br />

ViewHandler <strong>de</strong>lega a tarefa <strong>de</strong> restaurar e salvar o esta<strong>do</strong> à classe StateManager.<br />

Nota: O Eclipse IDE, através <strong>do</strong> plug-in JBoss Tools, já adiciona esses elementos configura<strong>do</strong>s em<br />

um projeto Facelets.<br />

Para configurar o arquivo faces-config.xml por completo, você precisa adicionar a classe Controle e<br />

<strong>de</strong>terminar a navegação das futuras páginas.<br />

A Listagem 3 mostra as configurações necessárias no arquivo faces-config.xml.<br />

Listagem 3 – O arquivo faces-config.xml<br />

…<br />

<br />

controle<br />

<br />

br.com.integrator.controller.Controle<br />

<br />

session<br />

<br />

<br />

/cadastro.xhtml<br />

<br />

cadastra<strong>do</strong>s<br />

/cadastra<strong>do</strong>s.xhtml<br />

<br />

<br />

<br />

/cadastra<strong>do</strong>s.xhtml<br />

<br />

cadastro<br />

/cadastro.xhtml<br />

<br />

<br />

...<br />

A página cadastra<strong>do</strong>s.xhtml será exibida quan<strong>do</strong> houver a string cadastra<strong>do</strong>s. E cadastro.xhtml será<br />

exibida quan<strong>do</strong> houver a string cadastro.<br />

Página 14<br />

www.integrator.com.br


Figura 15 – Navegação das páginas<br />

O arquivo web.xml<br />

Para ter uma aplicação Web utilizan<strong>do</strong> Facelets funcionan<strong>do</strong>, é necessário também adicionar alguns<br />

elementos no arquivo web.xml.<br />

A principal informação adicionada no <strong>de</strong>ployment <strong>de</strong>scriptor para trabalhar com Facelets é mostra<strong>do</strong><br />

na Listagem 4 a seguir:<br />

Listagem 4 – O arquivo web.xml<br />

…<br />

<br />

javax.faces.DEFAULT_SUFFIX<br />

.xhtml<br />

<br />

...<br />

Observan<strong>do</strong> a configuração, você percebe que o facelets vai utilizar o arquivo com extensão .xhtml<br />

para ren<strong>de</strong>rizar a página JSF, que também foi exibida na configuração <strong>do</strong> arquivo faces-config.xml.<br />

As páginas da aplicação<br />

Com o direito sobre o diretório WebContent, no Eclipse IDE, na view Package, selecione New ><br />

XHTML File no menu <strong>de</strong> contexto.<br />

Na caixa <strong>de</strong> diálogo New File XHTML, digite cadastro no campo Name e clique no botão Next.<br />

Página 15<br />

www.integrator.com.br


Figura 16 – Crian<strong>do</strong> uma página XHTML no Eclipse IDE<br />

Na segunda e última etapa da criação da página XHTML, você tem uma série <strong>de</strong> Taglibs que po<strong>de</strong>m<br />

ser adicionadas a página que será gerada. Marque JSF Core e JSF HTML e clique no botão Finish.<br />

Figura 17 – Adicionan<strong>do</strong> as taglibs ao <strong>do</strong>cumento<br />

Uma página XHTML Facelets possui o seguinte cabeçalho:<br />

<br />

Página 16<br />

www.integrator.com.br


Com os atributos xmlns:f e xmlns:h você configura os valores para as tags Core e HTML <strong>do</strong> JSF.<br />

Altere a página cadastro.xhtml para o mostra<strong>do</strong> na Listagem 5 a seguir.<br />

Listagem 5 – A página cadastro.xhtml<br />

…<br />

<br />

Trabalhan<strong>do</strong> com Facelets <br />

<br />

#cadastro{<br />

margin:0;<br />

display:block;<br />

position: relative;<br />

height: auto;<br />

float: left;<br />

padding-bottom: 10px;<br />

}<br />

#cadastro fieldset{<br />

padding-left: 25px;<br />

bor<strong>de</strong>r: solid #CCCCCC 1px;<br />

margin: 0 auto;<br />

text-align: left;<br />

width: 350px;<br />

padding-bottom: 25px;<br />

}<br />

#cadastro legend{<br />

font-weight: bold;<br />

font-size: 11pt;<br />

letter-spacing: 1px;<br />

padding-bottom: 10px;<br />

}<br />

html>body #cadastro legend{<br />

margin-bottom: 0px;<br />

}<br />

#cadastro .field{<br />

bor<strong>de</strong>r-top: solid #333333 1px;<br />

Página 17<br />

www.integrator.com.br


or<strong>de</strong>r-left: solid #333333 1px;<br />

bor<strong>de</strong>r-bottom: solid #CCCCCC 1px;<br />

bor<strong>de</strong>r-right: solid #CCCCCC 1px;<br />

font-size: 13px;<br />

margin-bottom: 10px;<br />

color: #0E0659;<br />

}<br />

#cadastro label{<br />

display: block;<br />

width: 80px;<br />

float: left;<br />

color: #000;<br />

bor<strong>de</strong>r-bottom: 1px solid #f1f1f1;<br />

}<br />

#cadastro .msg{<br />

padding-left: 5px;<br />

}<br />

#cadastro fieldset {<br />

width:400px;<br />

margin:0;<br />

padding:5px;<br />

}<br />

#cadastro dd span{<br />

padding-left: 5px;<br />

}<br />

<br />

<br />

<br />

<br />

<br />

<br />

Cadastro<br />

<br />

Nome:<br />

<br />


Observan<strong>do</strong> a Listagem 5, você percebe que não precisamos da tag JSF , importantíssima no<br />

<strong>de</strong>senvolvimento sem Facelets. A página é feita em um (X)HTML comum, formatada com CSS,<br />

conten<strong>do</strong> em algumas tags apenas a injeção <strong>de</strong> alguns atributos. O atributo jsfc é o que <strong>de</strong>termina o<br />

componente JSF ao qual aquela tag pertence. Isso realmente facilita a vida <strong>de</strong> um <strong>de</strong>signer que utiliza<br />

um programa diferente <strong>do</strong> Eclipse IDE, como por exemplo o Dremweaver. Dentro <strong>do</strong> atributo jsfc<br />

www.integrator.com.br<br />

Página 19<br />

value="#{controle.cadastro.nome}"<br />

styleClass="field" required="true" /><br />

<br />

<br />

<br />

<br />

E-mail:<br />

<br />

<br />

<br />

<br />

<br />

<br />

Telefone:<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

...


temos o que seria o início da tag JSF. Por exemplo, um botão <strong>de</strong> envio em JSF é cria<strong>do</strong> pela tag<br />

e em Facelets po<strong>de</strong> ser feito <strong>de</strong>ssa forma ou injeta<strong>do</strong> no (X)HTML, como valor<br />

<strong>do</strong> atributo jsfc, como por exemplo: jsfc= “h:commandButton”. Outros atributos específicos <strong>do</strong> JSF,<br />

como action, value, required e styleClass também são usa<strong>do</strong>s.<br />

Crie uma nova página e a chame <strong>de</strong> cadastra<strong>do</strong>s.xhtml. Esta página exibirá as informações<br />

armazenadas no List da classe Controle.<br />

A Listagem 6 a seguir exibe a página cadastra<strong>do</strong>s.xhtml.<br />

Listagem 6 – A página cadastra<strong>do</strong>s.xhtml<br />

…<br />

Trabalhan<strong>do</strong> com Facelets <br />

<br />

.table-hea<strong>de</strong>r{<br />

padding: 5px;<br />

background-color: #CCC;<br />

color: #FFF;<br />

}<br />

.col-a{<br />

}<br />

.col-b{<br />

background-color: #EEE;<br />

}<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

www.integrator.com.br


<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

Novo<br />

<br />

<br />

...<br />

Na página cadastra<strong>do</strong>s.xhtml houve uma mistura <strong>de</strong> tags (X)HTML injetadas com atributos JSF e<br />

tags próprias <strong>do</strong> JSF. Dessa forma, po<strong>de</strong>mos observar que tanto faz utilizar um mo<strong>do</strong> como outro.<br />

Porém, como já foi dito, no caso <strong>do</strong> <strong>de</strong>senvolve<strong>do</strong>r estar trabalhan<strong>do</strong> com um <strong>de</strong>signer Web, os<br />

atributos JSF em tags (X)HTML serão bem mais aceitos, ajudan<strong>do</strong>, inclusive, na limpeza <strong>do</strong> <strong>de</strong>sign da<br />

página.<br />

Página 21<br />

www.integrator.com.br


Figura 18 – Resulta<strong>do</strong> final das páginas Facelets ren<strong>de</strong>rizadas<br />

Página 22<br />

www.integrator.com.br

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!