Facelets

36 respostas
B

Olá pessoal.

já li diversos tópicos sobre facelets, porém, não consigo fazer o meu funcionar.
O que ocorre é que nas páginas clientes do meu template, o css que foi definido neste template não é carregado. No template este mesmo css funciona normalmente.
PS: Preciso entregar este trabalho amanhã na facu.
Obrigado
Seguem meus arquivos.

layout.xhtml:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
                      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:rich="http://richfaces.org/rich"
	xmlns:a4j="http://richfaces.org/a4j"
	xmlns:richx="http://richfaces.org/richx">

<head>

 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
 <title>SADM</title> 
<link href="./style.css" rel="stylesheet" type="text/css" /> 
</head>

<body>
<div id="wrapper">
<ui:insert name="wrapper">
	<div id="header-wrapper">
	<ui:insert name="header-wrapper">
		<div id="logo">
		<ui:insert name="logo">
			<h1><a href="./index.xhtml">SADM</a></h1>
			<p><em> by <a href="http://www.impacta.edu.br/">Grupo OPE</a></em></p>
		</ui:insert>
		</div>
		<hr />
		<div id="header">
		<ui:insert name="header">
			<div id="menu">
			<ui:insert name="menu">
				<ul>
					<li><a href="#">Default</a></li>
  					<li><a href="#">Default</a></li>
  					<li><a href="#">Default</a></li>
  					<li><a href="#">Default</a></li>
				</ul>
			</ui:insert>
			</div>
			<!--  <div id="search">
			<form method="get" action="">
				<fieldset>
				<input type="text" name="s" id="search-text" size="15" />
				<input type="submit" id="search-submit" value="Search" />
				</fieldset>
			</form>
			</div>-->
		</ui:insert>
		</div>
	</ui:insert>
	</div>
	
	<div id="page">
	<ui:insert name="page">
		<div id="content">
		<ui:insert name="content">
			<div class="post">
			<ui:insert name="post">
				<h2 class="title">Default</h2>
			</ui:insert>
			</div>
		</ui:insert>
		</div>
		
		<div id="sidebar">
		<ui:insert name="sidebar">
			<ul>
				<li>
					<h2>Sub-Menu</h2>
					<p>Default</p>
					<p>Default</p>
					<p>Default</p>
					<p>Default</p>
				</li>
				<li>
					<h2>Integrantes</h2>
					<p>Bruno Costa - 81011</p>
					<p>André Faresin - </p>
					<p>Andreia Benavides - </p>
					<p>Julio Husak - </p>
					<p>Caio - </p>
				</li>
			</ul>
		</ui:insert>
		</div>
	</ui:insert>
	<div style="clear: both;">&nbsp;</div>
	</div>
	
	<div id="footer">
	<ui:insert name="footer">
		<p>Copyright (c) 2011 .</p>
	</ui:insert>
	</div>
</ui:insert>
</div>
</body>
</html>
_____________________________________________________ index.xhtml:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
                      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
                      

<ui:composition xmlns="http://www.w3.org/1999/xhtml"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:rich="http://richfaces.org/rich"
	xmlns:a4j="http://richfaces.org/a4j"
	xmlns:richx="http://richfaces.org/richx"
	template="./layout.xhtml">
	
<ui:define name="menu">
	<ul>
		<li><a href="#">Documentos</a></li>
		<li><a href="#">Despacho</a></li>
		<li><a href="#">Colaborador</a></li>
	</ul>
</ui:define>

<ui:define name="post">
	<h2 class="title">SADM - Seja Bem Vindo</h2>
</ui:define>

<ui:define name="sidebar">
	<ul>
		<li>
			<h2>Integrantes</h2>
			<p>Bruno Costa - 81011</p>
			<p>André Faresin - </p>
			<p>Andreia Benavides - </p>
			<p>Julio Husak - </p>
			<p>Caio - </p>
		</li>
	</ul>
</ui:define>

</ui:composition>

36 Respostas

B

Por favor, alguém…

R

Primeiramente,formata teu código usando as tags <code>,fica mais fácil da gente te ajudar.

B

Feito.

Foi mal, Obrigado pela atenção.

A

Em ves de :

<link href="./style.css" rel="stylesheet" type="text/css" />

coloca:

<link href="#{facesContext.externalContext.request.contextPath}/static/css/styles.css" rel="stylesheet" type="text/css" />

Ve se funfa.

B

Não.

Agora nem o template (layout.xhtml), renderizou o css.

Obrigado, pela atenção, cara.

A

vc colocou o caminho do css certo ?

No meu exemplo está:

/static/css/styles.css

vc tem que colocar onde está o seu css

que seria

/style.css
<link href="#{facesContext.externalContext.request.contextPath}/style.css" rel="stylesheet" type="text/css" />
B

Sim eu coloquei:

Mas, o além da página cliente do template, este mesmo template tbm não renderizou o css.

Uma pergunta.
Quando eu digito a tag “UI” (<ui:…) e pressiono o crtl+espaço, deveria aparecer as opções insert, define, compositon e etc. certo?
No meu aqui não aparece!

Ou eu estou falando besteria?

A

Era sim, vc ta com o jbossTool instalado ai para ajudar ?

a sua “index.xhtml” está aparecendo na pagina quando vc clica ? onde no codigo vc está dando o insert da index ?

B

Não tenho o Jboss tools não.
Pegueis os jars, e criei os XML.

Como assim, aparecendo a página?
Quando eu rodo a index.xhtml no browser ela aparece todos os textos que eu pedi… só que sem o css, que está no template(layout.xml).

Não entendi a última pergunta:
onde no codigo vc está dando insert da index?

R

beroviski:
Sim eu coloquei:

Mas, o além da página cliente do template, este mesmo template tbm não renderizou o css.

Uma pergunta.
Quando eu digito a tag “UI” (<ui:…) e pressiono o crtl+espaço, deveria aparecer as opções insert, define, compositon e etc. certo?
No meu aqui não aparece!

Ou eu estou falando besteria?

o seu arquivo .css está dentro de alguma pasta ou na raiz mesmo ?
por que tem que colocar a pasta, o #{facesContext.externalContext.request.contextPath} seria como se fosse “www.seusite.com.br”
ai tem que colocar a pasta, caso esteja:

#{facesContext.externalContext.request.contextPath}\pasta\styles.css
A

A sua index.xhtml tem que estar dentro do layout.xhtml certo ? Se ela não estiver dentro do layout não tem como ela pegar o css que vc definiu dentro do layout, no caso assim eu espero que o seu arquivo “index.xhtml” deva ficar dentro de alguma div de dentro do seu layout:

Tipo no meu layout exemplo.xhtml tem :

<div id="content">
			    <ui:insert name="content"/>
			</div>

então eu defino dentro do meu layout outro arquivo:

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core">     
	<ui:composition template="/templates/layoutAdmin.xhtml">
		<ui:define name="content">
	 		<div id="titleEntrada">
		 		<h:outputText value="#{msg.adm_title_entrada}"/>
		 	</div>	
		 	<div id="textEntrada">
		 		<h:outputText value="#{msg.adm_text_entrada}"/>
		 		<h:outputText value="#{msg.adm_text_entrada1}"/>
		 	</div>
	 	</ui:define>
  	</ui:composition>
</html>

entendeu ?

B

Sim, foi oq eu fiz. (Pelo menos eu acho).

No template tem:

<div id="menu">
			<ui:insert name="menu">

			</ui:insert>

e no index tem:

<ui: define name="menu">
				<ul>
					<li><a href="#">Default</a></li>
  					<li><a href="#">Default</a></li>
  					<li><a href="#">Default</a></li>
  					<li><a href="#">Default</a></li>
				</ul>
</ui: define>
R

é melhor postar o seu código e a estrutura das pastas.

A

Cara coloca assim:

<ui:insert name="menu">  
 <ui:include src="index.xhtml" />
</ui:insert>

deste jeito que vc que está o layout vc n está colocando a index.xhtml dentro do layout…

B

blz. entendi.

Mas se eu tiver várias páginas que usam o layout?

Vai ficar assim?

<ui:insert name="menu"> include src="index.xhtml" /> inlude src="página1.xhtml" /> inlude src="página2.xhtml" /> </ui:insert>

R

se você chamar uma página e adicionar ela no template, ela substitui o valor que está nela para a da sua página.
mas isso é apenas se for estatico, o certo é resolver o problema do css, posta seu código e a estrutura da sua página (um print é melhor)

B

O códido tá no começo do post.

R

se não me engano, você não pode colocar um insert dentro de outro na mesma página:

<ui:insert name="header">  
            <div id="menu">  
            <ui:insert name="menu">  
                <ul>  
                    <li><a href="#">Default</a></li>  
                    <li><a href="#">Default</a></li>  
                    <li><a href="#">Default</a></li>  
                    <li><a href="#">Default</a></li>  
                </ul>  
            </ui:insert>  
            </div>  
            <!--  <div id="search">  
            <form method="get" action="">  
                <fieldset>  
                <input type="text" name="s" id="search-text" size="15" />  
                <input type="submit" id="search-submit" value="Search" />  
                </fieldset>  
            </form>  
            </div>-->  
        </ui:insert>  
        </div>  
    </ui:insert>

o seu css tambem está na raiz ?

A

Então agora sim a estrutura ta certa cara, isto que vc fez é para definir a primeira pagina, já que é a index, nas proximas paginas vc vai fazer a navegação com o navigation, mandando para outro arquivo por exemplo teste.xhtml e la vc vai fazer as definições de quais plocos do seu layout serão alterados tipo

<ui:composition template="/templates/layout.xhtml"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:rich="http://richfaces.org/rich"
	xmlns:m="http://www.metodista.br/jsf"
	xmlns:a4j="http://richfaces.org/a4j">
	

	<ui:define name="menu">
		um menu diferente aqqui
	</ui:define>

Neste exemplo ai vc teria uma outra implementação de menu entendeu ?

B

Sim, está na raíz.

Se eu rodar somente o layout.xhtml, no browser aparece belizinha, sem erro algum.

Agora eu quero usar esse layout, para fazer uma página inicial. alterando somente algumas partes do que está no layout.xhtml

A

Renan o que eu falei esta certinho cara olha a documentação do facelet

O insert é usado quando outros facelets irão entrar no lugar que é o caso deste topico.

B

Então a estrutura está cera, porém, quando eu dou um Run as - Server… a página index.xhtml, só aparece os textos, não aparecem cores, imagens(CSS, que está definido no layout.xhtml).

Pelo que eu entendo de Facelets, deveria aparecer tudo aquilo que está no template(layout.xthml), e criando uma página “cliente”, posso alterar somente aquelas partes que eu quero.
Até ai blzz. eu altero somente aquilo que eu quero, porém, as outras coisas que deveriam permanecer não aparecem.




A

Nenhum css está aparecendo ? Nada ? A chamado do css tem que ser feita da maneira que eu te mostrei na pagina anterios:

Eexemplo:

<link rel="stylesheet" type="text/css" href="#{facesContext.externalContext.request.contextPath}/scripts/css/cadastro.css"/>

Vou te passar um exemplo de um projeto velho meu aqui:

layoutLogin.xhtml

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:h="http://java.sun.com/jsf/html">     
    <head>
    	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    	<link rel="shortcut icon" href="http://localhost:8080/mojo/images/sitelogo.png" type="image/x-icon" />
    	<title><h:outputText value="#{msg.site_title}"/></title>
    	<link rel="stylesheet" type="text/css" href="#{facesContext.externalContext.request.contextPath}/scripts/css/mainLogin.css"/>
    	<link rel="stylesheet" type="text/css" href="#{facesContext.externalContext.request.contextPath}/scripts/css/footer.css"/>
    	
    	<script type="text/javascript" src="#{facesContext.externalContext.request.contextPath}/scripts/jquery/jquery-1.3.2.js"></script>
		<script type="text/javascript" src="#{facesContext.externalContext.request.contextPath}/scripts/jquery/jquery.corner.js"></script>
		<script type="text/javascript" src="#{facesContext.externalContext.request.contextPath}/scripts/jquery/jquery.maskedinput-1.2.2.js"></script>
		<script type="text/javascript" src="#{facesContext.externalContext.request.contextPath}/scripts/jquery/jquery.form.js"></script>
		
		<script type="text/javascript" src="#{facesContext.externalContext.request.contextPath}/scripts/js/mainAdmin.js"></script>
    </head>
    <body>
    <f:view>
    	<f:loadBundle basename="br.com.mojo.messages.resources" var="msg"/>
		<div id="container">
			<div id="header">
			    <h:graphicImage id="image" alt="jsf-sun"  url="/images/logo.png"/>    
			</div>
			<div id="content">
			    <ui:insert name="content"/>
			</div>
			<div id="footer">
			    <ui:include src="/templates/footer.xhtml"/>
			</div>
		</div>
	</f:view>
	</body>
</html>

login.xhtml

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core">     
      
	<ui:composition template="templates/layoutLogin.xhtml">
		<ui:define name="content">
			<ui:include src="/templates/menuLogin.xhtml"/>
			<div id="contentEntradaCelular">
				<h:graphicImage  alt="jsf-sun"  url="/images/entradaCelular2.png"/>
				<h:graphicImage id="contentEntradaTitle" alt="jsf-sun"  url="/images/loginTitle.png"/>
			</div>
	 	</ui:define>
  	</ui:composition>
</html>

O arquivo login.xhtml é invocado na aplicação, nele eu defini que o layout a ser usado é o “templates/layoutLogin.xhtml”

<ui:composition template="templates/layoutLogin.xhtml">
  	</ui:composition>

dentro desta definição eu falei qual parte do layout eu gostaria de mudar

<ui:composition template="templates/layoutLogin.xhtml">
		<ui:define name="content">
	 	</ui:define>
  	</ui:composition>

em seguida eu inclui um outro xhtml que é o meu menu referente ao login

<ui:composition template="templates/layoutLogin.xhtml">
		<ui:define name="content">
			<ui:include src="/templates/menuLogin.xhtml"/>

	 	</ui:define>
  	</ui:composition>

e depois inclui uma div qualquer

<ui:composition template="templates/layoutLogin.xhtml">
		<ui:define name="content">
			<ui:include src="/templates/menuLogin.xhtml"/>
			<div id="contentEntradaCelular">
				<h:graphicImage  alt="jsf-sun"  url="/images/entradaCelular2.png"/>
				<h:graphicImage id="contentEntradaTitle" alt="jsf-sun"  url="/images/loginTitle.png"/>
			</div>
	 	</ui:define>
  	</ui:composition>

Se nenhum css está sendo colocado na sua página é que tem alguma coisa errada na hora de declarar o caminho da sua pagina.

A

Vc está declarando errado no index

Tenta assim:

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"  
    xmlns:ui="http://java.sun.com/jsf/facelets"  
    xmlns:f="http://java.sun.com/jsf/core"  
    xmlns:h="http://java.sun.com/jsf/html"  
    xmlns:rich="http://richfaces.org/rich"  
    xmlns:a4j="http://richfaces.org/a4j"  
    xmlns:richx="http://richfaces.org/richx" >
      
	<ui:composition template="/layout.xhtml">
		<ui:define name="menu">  
    <ul>  
        <li><a href="#">Documentos</a></li>  
        <li><a href="#">Despacho</a></li>  
        <li><a href="#">Colaborador</a></li>  
    </ul>  
</ui:define>  
  
<ui:define name="post">  
    <h2 class="title">SADM - Seja Bem Vindo</h2>  
</ui:define>  
  
<ui:define name="sidebar">  
    <ul>  
        <li>  
            <h2>Integrantes</h2>  
            <p>Bruno Costa - 81011</p>  
            <p>André Faresin - </p>  
            <p>Andreia Benavides - </p>  
            <p>Julio Husak - </p>  
            <p>Caio - </p>  
        </li>  
    </ul>  
</ui:define>  
  	</ui:composition>
</html>
R

você está usando “Run as…” na página ?
faça o deploy, pode ser isso.
se for eclipse aperte F11 que tambem resolve.

R

Alchemist:
Vc está declarando errado no index

Tenta assim:

ué, ele não disse que está tudo na raiz ?
por que o:

<ui:composition template="templates/layoutLogin.xhtml">

o que esse templates/

B

Esse template é um exemplo que o alquimista passou.

A

Isto foi só um exemplo

<ui:composition template="templates/layoutLogin.xhtml">

No que eu falei para vc fazer tirar o “/” antes do layout se n funfar de prima.

R

não percebi.
Você tentou fazer o deploy completo ?
está publicando os arquivos correto ?
verifica se não da nenhum erro na hora de subir o servidor.

caso está ok, anexa seu código pra eu testar aqui.

B

Assim tbm não funcionou.

Agora a página fica toda em branco.. nem os html puro não aparacem

<?xml version="1.0" encoding="ISO-8859-1"?>  
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
<html xmlns="http://www.w3.org/1999/xhtml"    
    xmlns:ui="http://java.sun.com/jsf/facelets"    
    xmlns:f="http://java.sun.com/jsf/core"    
    xmlns:h="http://java.sun.com/jsf/html"    
    xmlns:rich="http://richfaces.org/rich"    
    xmlns:a4j="http://richfaces.org/a4j"    
    xmlns:richx="http://richfaces.org/richx" >  
        
    <ui:composition template="/layout.xhtml">  
        <ui:define name="menu">    
    <ul>    
        <li><a href="#">Documentos</a></li>    
        <li><a href="#">Despacho</a></li>    
        <li><a href="#">Colaborador</a></li>    
    </ul>    
</ui:define>    
    
<ui:define name="post">    
    <h2 class="title">SADM - Seja Bem Vindo</h2>    
</ui:define>    
    
<ui:define name="sidebar">    
    <ul>    
        <li>    
            <h2>Integrantes</h2>    
            <p>Bruno Costa - 81011</p>    
            <p>André Faresin - </p>    
            <p>Andreia Benavides - </p>    
            <p>Julio Husak - </p>    
            <p>Caio - </p>    
        </li>    
    </ul>    
</ui:define>    
    </ui:composition>  
</html>
B

tem como mandar o projeto todo para vcs?

A

manda ai

PS: Editei para tirar o e-mail

B

foi.

A

Recebi o arquivo, e o problema é que o JSF não estava configurado, o seu WEB.XML estava vazio… te mandei por e-mail o web.xml certinho e vou postar ele aqui.

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	id="WebApp_ID" version="2.5">
	<display-name>teste</display-name>
	<!-- Plugging the "Blue Sky" skin into the project -->

	<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>

	<!-- Use Documents Saved as *.xhtml -->
	<context-param>
		<param-name>javax.faces.DEFAULT_SUFFIX</param-name>
		<param-value>.xhtml</param-value>
	</context-param>

	<!-- Special Debug Output for Development -->
	<context-param>
		<param-name>facelets.DEVELOPMENT</param-name>
		<param-value>true</param-value>
	</context-param>

	<!-- Optional JSF-RI Parameters to Help Debug -->
	<context-param>
		<param-name>com.sun.faces.validateXml</param-name>
		<param-value>true</param-value>
	</context-param>
	
	<context-param>
		<param-name>com.sun.faces.verifyObjects</param-name>
		<param-value>true</param-value>
	</context-param>

	<!-- Faces Servlet -->
	<servlet>
		<servlet-name>Faces Servlet</servlet-name>
		<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
		<load-on-startup>1</load-on-startup>
	</servlet>

	<!-- Faces Servlet Mapping -->
	<servlet-mapping>
		<servlet-name>Faces Servlet</servlet-name>
		<url-pattern>*.jsf</url-pattern>
	</servlet-mapping>
	
	<welcome-file-list>
		<welcome-file>index.html</welcome-file>
	</welcome-file-list>
</web-app>

A URL de acesso é

Por isto que nada do Facelts não estava funcionando, o projeto não estava configurado.

B

Ainda não rolou…

Agora quando digito a url dá erro 404

B

Conseguir, cara...

Nossa karaka... Funcionou...

valewww pelo ajuda, obrigado mesmo.

Uma das coisas era que eu não escolhi JavaServer Faces 1.2 no inicio do projeto.

Mas mesmo assim não havia funcionado.

E a outra coisa que eu fiz foi mudar os nomes das páginas de .xhtml para .htm e mudar no web.xml

ai funfou... hehehhe.

No faces-config.xml eu usei comente isso:

<?xml version="1.0" encoding="UTF-8"?>

<faces-config
    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-facesconfig_1_2.xsd"
    version="1.2">
<application>
     <view-handler>com.sun.facelets.FaceletViewHandler</view-handler>
 </application>
</faces-config>

e no web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>web</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.jsf</url-pattern>
  </servlet-mapping>
  
  <context-param>
     <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
     <param-value>.htm</param-value>
 </context-param>
 
<context-param>
     <param-name>facelets.DEVELOPMENT</param-name>
     <param-value>true</param-value>
 </context-param>
 
<context-param>
     <param-name>facelets.SKIP_COMMENTS</param-name>
     <param-value>true</param-value>
 </context-param>
 
<context-param>
     <param-name>com.sun.faces.validateXml</param-name>
     <param-value>true</param-value>
 </context-param>
</web-app>

Ai chamei a pagina: http://localhost:8080/web/pagina.jsf

e funfou.

Obrigado pelo esforço de todos que me ajudaram.

Criado 14 de junho de 2011
Ultima resposta 15 de jun. de 2011
Respostas 36
Participantes 4