Problema com Facelets

Ola gente!

Eu quero desenvolver para Web usando Facelets, JSF e Richfaces… e tem um problema, para facelets as páginas são em xhtml…estou usando a versao do eclipse 3.6, o JSF 1.2 e o container tomcat v6…ja add as configurações do facelets…e os jars…e criei o arquivo em extensão em xhtml…e uma index para esta página principal…mas parece q a página nao está sendo encontrada…(com extensão JSP funciona, agora Xhtml nao)

Alguem tem algum tutorial, para desenvolvimento JSF e Facelets…?

Vc tem que usar a extensão que está mapeado no web.xml

Por exemplo:

 <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.jsf</url-pattern>
  </servlet-mapping>

Na url:

 ..app/pagina.jsf

isso que eu fiz na página…na index fiz assim <jsp:forwad page=“teste.jsf”> </jsp> …mas a minha página em xhtml não é exibida…

Faz assim:

<% response.sendRedirect("/app/pagina.jsf"); %>

vou tentar quando chegar em casa(to no trab, só queria tirar minha dúvida logo)…vou tentar usar o sendRedirect… mas qual a diferença?

Redirect ou Forwad

Ah …O facelets é só para templates??? posso usar dentro das tags do JSF <f:view>

Veja, primeiro vc deve ter a seguinte configuração no seu web.xml

<context-param>
  <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
  <param-value>.xhtml</param-name>
</context-param>

Isso vai dizer ao JSF q as views serão escritas em formato xhtml. Depois dê uma olhada no seu mapeamento da FacesServlet. Isso serve p/ vc dizer como as páginas devem ser acessadas.

<servlet-mapping>
  <servlet-name>FacesServlet</servlet-name>
  <url-pattern>*.xhtml</url-pattern>
</servlet-mapping>

Essa tag url-pattern indica como vc vai acessar as suas views. Eu costumo usar essa configuração nos meus aplicativos pq ela mapeia urls terminadas em .xhtml.

Como está essa configuração no seu projeto?

PS.: não, vc não pode colocar tags <f:view> se vc estiver usando Facelets. Isso é só p/ JSP.

Sim… eu tenho ja esse mapeamento…porque eu vi em um tutorial de facelets que é necessário…

&lt;servlet-mapping&gt; &lt;servlet-name&gt;FacesServlet&lt;/servlet-name&gt; &lt;url-pattern&gt;*.xhtml&lt;/url-pattern&gt; &lt;/servlet-mapping&gt;

preciso desse tbm do JSF neh…?

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

depois eu vou postar meu web.xml aqui…

Sim! O servlet-mapping determina quais urls passam pelo JSF e quais não passam. Por exemplo se o seu url-pattern estiver assim:

<url-pattern>*.jsf</url-pattern>

Vc deve acessar as suas views p/ urls terminadas com a extenção .jsf. Isso não muda o fato de q as suas views ainda devem ser arquivos .xhtml apenas muda a maneira como vc as acessa. Ou seja, se vc tiver uma view test.xhtml vc vai acessa-la pela através da url http://hostname[:port]/appname/test.jsf.

É por isso q eu aconselho q vc configure da seguinte maneira:

<url-pattern>*.xhtml</url-pattern>

Pq assim a sua view test.xhtml pode ser acessada assim: http://hostname[:port]/appname/test.xhtml.

Entendeu?

acho que Entendi…

ao invés de usar

eu uso assim para acessar pela url ao /teste.xhtml…