Redirecionamento com âncora JSF

4 respostas
G

Pessoal dei uma pesquisada na internet mas não encontrei o que eu queria.

To precisando fazer o redirecionamento de uma action para um âncora de uma página, algo mais ou menos assim:

<h:commandButton action="#{bean.action}" />

<navigation-rule>
     <from-view-id>/path/pagina1.xhtml</from-view-id>		
     <navigation-case>
         <from-outcome>cancelar</from-outcome>
         <to-view-id>/path/pagina2.xhtml#ancora</to-view-id>
         <redirect />
     </navigation-case>
</navigation-rule>

Dá pra fazer utilizando o redirecionamento na mão:

externalContext.redirect("/path/pagina2.xhtml#ancora");

mas queria saber se alguém sabe fazer de alguma outra forma, de preferência como a descrita anteriormente.

4 Respostas

A

Jah tentou utilizar em algum metodo o redirecionamento apos a execução do mesmo?
tipo:

FacesContext.getCurrentInstance().getExternalContext().redirect("/SeuProjeto/SuaPgn.xhtml");
G

Já e funciona. Foi isso que eu quis dizer com: externalContext.redirect("/path/pagina2.xhtml#ancora"); :smiley: .
Mas o que eu queria era tentar fazer isso na própria navegação do JSF.

D

quer uma gambeta?

return “pagina?exibir=ancora”

e lá na pagina.xhtml você coloca uma rotina JavaScript no para recuperar a query string e ir para #ancora ;D
algo como:

if (window.location.search.substring(1) == “exibir=ancora”) { window.location = ‘#ancora’ }

G

Cara, acho q vou usar a alternativa anterior mesmo. Pelo menos o redirecionamento fica dentro do método, mais fácil de achar caso precise alterar. O problema é que de início eu vou usar isso em pelo menos umas dez páginas, talvez isso aumente depois aí vai ficar f0d@ de dar manutenção. =(

Criado 9 de fevereiro de 2012
Ultima resposta 13 de fev. de 2012
Respostas 4
Participantes 3