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