Problema com JSF

oi pessoal

queria ajuda de vcs, eu estou aprendendo JSF e estou seguindo um manual q encontrei na internet mesmo. Só que estou tendo problema de direcionar as paginas no faces-config.xml.

Olha como ele está:

[code]<?xml version="1.0" encoding="windows-1252"?>

gerenciadorContato agenda.GerenciadorContato session
<navigation-rule>
<from-view-id>/incluir.jsp</from-view-id>
<navigation-case>
    <from-outcome>sucesso</from-outcome>
    <to-view-id>/sucesso.jsp</to-view-id>
</navigation-case>
<navigation-case>
    <from-outcome>erro</from-outcome>
    <to-view-id>/erro.jsp</to-view-id>
</navigation-case>	
</navigation-rule>

<navigation-rule>
<from-view-id>*</from-view-id>
<navigation-case>
    <from-outcome>incluir</from-outcome>
    <to-view-id>/incluir.jsp</to-view-id>
</navigation-case>
<navigation-case>
    <from-outcome>consultar</from-outcome>
    <to-view-id>/consultar.jsp</to-view-id>
</navigation-case>
</navigation-rule>

[/code]

porém se eu estou na tela de inclusão , clico no botão incluir e devolve uma string “sucesso”…só que não entra na sucesso.jsp

olha minha classe:

[code]package agenda ;

import java.util.ArrayList ;
import java.util.Date ;
import java.util.List ;

import javax.faces.event.ActionEvent ;
import javax.faces.model.DataModel ;

import javax.faces.model.ListDataModel ;

import org.apache.myfaces.custom.navmenu.NavigationMenuItem ;

public class GerenciadorContato
{
private Contato contato = new Contato();
private DataModel contatos;
private String tituloTela;

public void consultar(ActionEvent e)
{
tituloTela = "Contatos da Agenda";
ContatoDao cDao = new ContatoDao();
contatos = new ListDataModel(cDao.consultar());
}

public String incluir(ActionEvent e)
{
ContatoDao cDao = new ContatoDao();
cDao.incluir(contato);
return "sucesso";
}

// get e set omitidos
}
[/code]

minha jsp de incluir:

[code]
<%@ page contentType=“text/html;charset=windows-1252”%>
<%@ taglib uri=“http://java.sun.com/jsf/core” prefix=“f”%>
<%@ taglib uri=“http://java.sun.com/jsf/html” prefix=“h”%>
<%@ taglib uri=“http://myfaces.apache.org/tomahawk” prefix=“t”%>

incluir
<%@include file="menu.jsp"%> Inclusão de Contatos:
	    <fieldset> 
		<legend>Dados Incluidos:</legend> 
		      <h:panelGrid columns="2">
			    <h:outputText value="Nome:"/>
			    <h:outputLabel value="#{gerenciadorContato.contato.nome}"/>
			     <h:outputText value="Telefone:"/>
			     <h:outputLabel value="#{gerenciadorContato.contato.telefone}"/>
			     <h:outputText value="Favorito:"/>
			     <h:outputLabel value="#{gerenciadorContato.contato.favorito}"/>
		    </h:panelGrid>
	    </fieldset>
	</h:form>
    </f:view>  
  </div>
  <div id="rightBar">      </div>
  <div id="footer">    <img src="images/barra.jpg"/>  </div>
</div>
[/code]

se alguem já pssou por isso e puder me ajudar, agradeço

só preciso direcionar para sucesso.jsp ou erro.jsp

vlw

sucesso.jsp esta no seu web-content?
o incluir.jsp nesse caso deve estar la tambem

os dois estão no mesmo nivel, dentro de web-content

e se fosse erro de não encontrar a classe, não deveria dar o erro 404?

porque não da erro, ele persiste e volta pra mesma tela…

Tenta tirar o “ActionEvent e” do metodo incluir que
requer retorno void e troque de “actionListener” para “action” no botao

Jean
mas o problema não eh a ação, eu consigo entrar no método…ele chega a incluir normal

só não chega vai para outra tela. Eu axo q esse erro está no faces-config. Mas não to achando o erro

No h:commandButton, troque o
actionListener="#{gerenciadorContato.incluir}“
por action=”#{gerenciadorContato.incluir}",

pois o actionListener não é usada para navegação.
Retire os parametros do método incluir e o retorno deve ser String.

[]s

valeu bruno

era isso mesmo, agora deu certo

brigado

Voce fez a alteracao e o erro persistiu?
Eu testei o seu exemplo e funciou direitinho.
Nao ha como fazer a navegacao utilizando actionListener pois
o metodo exige void como retorno, colocando retorno String,
action no botao e removendo o ActionEvent vai fazer o que voce
deseja. Nesse caso nao vejo pq usar actionListener.

Jean deu certo sim…mudei para action e resolveu o problema…

agora tem outro problema, estou usando o tomahawk e o myfaces para o exemplo acima, e qdo clico no menu (q foi gerado pelo jsf) ele da erro…como se tivesse faltando algo do tomahawk

olha o erro que aparece no browser

Erro: dummyForm.elements.jscook_action is undefined Arquivo-fonte: http://172.16.22.119:8989/testejsf/faces/myFacesExtensionResource/org.apache.myfaces.renderkit.html.util.MyFacesResourceLoader/12436229/navmenu.jscookmenu.HtmlJSCookMenuRenderer/MyFacesHack.js;jsessionid=ac101677231dd3b6e9c0ab0d4a69adb4b4952484bb51 Linha: 33

olha minha tela de menu:

[code]<%@ page contentType=“text/html;charset=windows-1252”%>
<%@ taglib uri=“http://java.sun.com/jsf/html” prefix=“h”%>
<%@ taglib uri=“http://myfaces.apache.org/tomahawk” prefix=“t”%>
<h:panelGrid width=“500px” style=“background­color: #cfc”>
<t:jscookMenu layout=“hbr” theme=“ThemePanel”>
<t:navigationMenuItem itemLabel=“Cadastro”>
<t:navigationMenuItem itemLabel=“Incluir Contato” action=“incluir”></t:navigationMenuItem>
</t:navigationMenuItem>
<t:navigationMenuItem itemLabel=“Consultar”>
<t:navigationMenuItem itemLabel=“Consultar Todos” action=“consultar”></t:navigationMenuItem>
<t:navigationMenuItem itemLabel=“Consultar Aniversáriantes de Hoje” action=“consultar”></t:navigationMenuItem>
</t:navigationMenuItem>
<t:navigationMenuItem itemLabel=“Favoritos”>
</t:navigationMenuItem>
</t:jscookMenu>
</h:panelGrid>

[/code]

esse menu.jsp eh um include da tela incluir que já foi postada…

eu consigo acessar normalmente a tela incluir, mas se clico no menu…da esse erro ai

preciso de ajuda :?

Crie um form e coloque o menu dentro junto com esse campo:

No wiki do menu diz que deve haver esse campo.
http://wiki.apache.org/myfaces/JSCook_Menu
Obs: No google tem bastante coisa sobre o assunto.

Jean, não deu certo não

coloquei esse campo hidden e não funcionou

não coloquei o form no menu.jsp porque ele eh include

e na tela que eu incluo, já existe o form.

repara la na tela incluir.jsp que eu faço include do menu.jsp (e está dentro do form).

Agora só adicionei o campo hidden no menu.jsp. Mas continua o mesmo erro

pelo que eu estou entendendo, o erro pode ser um filtro declarado no web.xml:

<filter> <filter-name>extensionsFilter</filter-name> <filter-class>org.apache.myfaces.component.html.util.ExtensionsFilter</filter-class> </filter> <filter-mapping> <filter-name>extensionsFilter</filter-name> <url-pattern>*.faces</url-pattern> </filter-mapping> <filter-mapping> <filter-name>extensionsFilter</filter-name> <url-pattern>/faces/*</url-pattern> </filter-mapping>

isso foi declarado no inicio do meu web.xml, atnes do mapeamento do myfaces

será q pode ser isso?

Olha só

tirei o menu da jsp separada (que eu tava fazendo include) e coloquei no incluir.jsp, dai deu certo

porque?

jsf não permite fazer include?