JSF: Não está redirecionando para a página descrita!

Olá pessoal. To com um probleminha que eu não sei o que está acontecendo:

esse é um trecho do meu jsp:

<h:commandLink value="teste" actionListener="#{form1.teste}"> <f:param id="editId" name="idTeste" value="#{item.numForm}"/> </h:commandLink>

esse é o meu método teste:

[code]public void teste(ActionEvent event) {
UIComponent comandLink = event.getComponent();
UIParameter parameter = (UIParameter) comandLink.findComponent(“editId”);
int id = (Integer) parameter.getValue();
form1 = findForm1(id);

    teste1();
}

public String teste1() {
    return "form1_detail";
}    [/code]

e no meu faces-config:

<navigation-rule> <navigation-case> <from-outcome>form1_detail</from-outcome> <to-view-id>/form1/Detail.jsp</to-view-id> </navigation-case> </navigation-rule>

Quando eu testo, não dá nenhum erro.
O único problema é que não tá redirecionando pra página Detail.jsp!
Tem alguma coisa de errada e eu não estou vendo?

valeu!

Então é que ocorre o seguinte:

Quando vc utiliza um actionListener o seu default é void correto?

então não tem como vc enviar para outra página.

Eu aconselharia vc a colocar este parametro em um inputHidden e usar um action ao invés de actionListener, ai vc conseguiria recuperar esse parametro e mudar de página, pois o retorno do método é uma String.

Ah mais uma coisa, faltou um pouco de conceito ai no seu código. Quando vc chama um método que retorna uma String, o retorno não é valido para o método que o chama EX:

//Conceito Orientação a objeto errado
public void testeSemRetorno(){
  testeComRetorno();
}

private String testeComRetorno(){
   return "teste";
}

//o correto seria, caso vc queira retornar o valor do método testeComRetorno();
public String testeSemRetorno(){
  return testeComRetorno();
}

private String testeComRetorno(){
   return "teste";
}

Espero ter ajudado. FLW

Página

<t:commandLink action="edit" actionListener="#{BuscaEstados.prepareEdit}" >
    <h:outputText value="Editar"/>
    <f:param id="ufcodigo" name="ufcodigo" value="#{row.ufcodigo}" />
</t:commandLink>

Faces Config

<navigation-rule>
        <from-view-id>/principal/principal.xhtml</from-view-id>       
        <navigation-case>
            <from-outcome>edit</from-outcome>
            <to-view-id>/cadastro/valida/valida.jsf</to-view-id>
        </navigation-case>
    </navigation-rule> 

Repare que na tag “commandLink” eu tenho o ACTION igual ao texto do meu “from-outcome”

Espero ter ajudado.

valeu rafaelvalerini . Eu tentei do “modo certo” e do “modo errado”.
E ambos não funcionaram.
Eu utilizei o exemplo do julianoeustaquio e funcionou certinho!

Obrigado pela ajuda dos dois.
Até mais!

São dois modos diferentes de serem feitos. o que eu lhe disse e o que o Juliano usou, ambos vaum funcionar, mas no caso do meu exemplo, vc teria que adaptar ao seu caso. no exemplo não coloquei nenhuma aplicação e configuração, somente expliquei conceitos de Orientação a Objeto