Olá, estou com problemas… procurei na web e vi a solução do facelets para templates no entanto notei que o template precisa ser feito no xhtml. Mas ao colocar o comando:
Erro 404 também acontece quando ele naum acha o template no endereço que vc passou.
Veja se o endereço está correto
<ui:composition template="<endereço_correto>">
rmomogi
Está correto pois o arquivo existe... testei com um xhtml em vez de um jsp e coloquei esse código e funciona...
só quando coloco isso num jsp para renderizar o template que não funciona...
<ui:composition template="layout/template.xhtml">
Para ajudar abaixo o código do JSP
<%@pagecontentType="text/html"pageEncoding="UTF-8"%><%@tagliburi="http://richfaces.org/a4j"prefix="a4j"%><%@tagliburi="http://richfaces.org/rich"prefix="rich"%><%@taglibprefix="f"uri="http://java.sun.com/jsf/core"%><%@taglibprefix="h"uri="http://java.sun.com/jsf/html"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><htmlxmlns:ui="http://java.sun.com/jsf/facelets"><ui:compositiontemplate="layout/template.xhtml"><ui:definename="body"><divclass="rbroundbox"style="width:225px;"><divclass="rbtop"><div></div></div><divclass="rbcontent"><divid="login"class="login"><f:view><rich:messages><f:facetname="passedMarker"><h:graphicImagevalue="/images/ajax/passed.gif"/></f:facet><f:facetname="errorMarker"><h:graphicImagevalue="/images/ajax/error.gif"/></f:facet></rich:messages><h:outputLabelid="destaque"value=".:: Acesso Restrito ::."/><h:panelGridcolumns="2"><h:outputLabelvalue="Email:"/><h:inputTextid="email"value="#{LoginBean.userVO.email}"/><h:outputLabelvalue="Senha:"/><h:inputSecretid="senha"value="#{LoginBean.userVO.senha}"/><a4j:commandButtonvalue="OK"action="#{LoginBean.validate}"/><a4j:commandButtonvalue="Limpar"/></h:panelGrid></f:view></div></div><divclass="rbbot"><div></div></div></div></ui:define></ui:composition></body></html>
fontoura
mas o seu template está dentro da pasta layout mesmo?
rmomogi
Sim, está…
Abaixo estou mandando um print …
fontoura
eu acho que falta uma barra antes do nome da pasta layout.
Outra coisa qual o arquivo vc está chamando o index.xhtml? Caso positivo vc deve chamar, no seu caso, index.jsf.
rmomogi
O arquivo index.xhtml eu fiz para testar… e funciona
Eu quero adicionar o template no teste.jsp…
Este que não funciona… ou estou errado que o template funciona somente nos arquivos xhtml…
Se for estou com outro problema, executo um a4j:commandButton para uma função do meu EJB e dá erro no javascript e não executa…
fontoura
é verdade como vc colocou .xhtml todas as páginas para usarem o Facelets terão que ter a extensão .xhtml
O Problema do botão vc terá que detalhar um pouco melhor… qual o erro de javascritp? qual a ação? enfim …
rmomogi
Eu tenho instalado o Firefox com FireBug…
e mostra o erro…
this._formisnullanonymous("_viewRoot",Objectname=form)3_3_0.GA...cript.jsf(linha187)anonymous("_viewRoot",Objectname=formId,ObjectoriginalTarget=input#j_id11target=input#j_id11,ObjectsimilarityGroupingId=j_id11parameters=Object)3_3_0.GA...cript.jsf(linha154)anonymous("_viewRoot",Objectname=formId,clickclientX=557,clientY=245,ObjectsimilarityGroupingId=j_id11parameters=Object)3_3_0.GA...cript.jsf(linha156)functiononclick(event){A4J.AJAX.Submit("_viewRoot",null,event,{similarityGroupingId:"j_id11",parameters:{j_id11:"j_id11"},actionUrl:"/cvh/index.jsf"});returnfalse;}(clickclientX=557,clientY=245)1(linha2)[Break on this error]elem=document.getElementById(targetID+"....._query[cname]){this._query[cname]=[];}\n
Descobri o erro… era que não coloquei o <h:form> na tela …
Agora deu certo…
Mas o ruim é ficar sem o auto-complete do netbeans… eu uso richfaces e não funciona o auto-complete…
tem que ficar olhando a documentação… e para quem está começando fica dificil…
O que posso fazer?
fontoura
é só vc usar o seguinte
Coloque todas as definições dos namespaces dentro da tag html igual ao código abaixo.