JSF - url inconsistente

9 respostas
hvivox

Olá pessoal!

Estou com a seguinte dúvida utilizo JSF+Hibernate+Eclipse ao navegar pelas páginas a url se torna inconsistente, por exemplo:

Se estou na tela “listarUsuario” é mostrada a seguinte URL “http://localhost:8080/jsfcursofinal/pages/listarUsuarios.jsf” até ai tudo bem.
Na mesma tela menciona acima tem o botao NOVO que direciona para tela “cadastroUsuario”. Quando clico no botão “NOVO” ele navega para a tela “cadastroUsuario” o grande problema está na url exibida: “http://localhost:8080/jsfcursofinal/pages/listarUsuarios.jsf” repare que no final da url é mostrado “listarUsuarios.jsf” ao invés de “cadastroUsuario”. Não consegui entender por quê está havendo esse tipo de inconsistencia na URL

Isso está certo? onde posso configurar para corrigir essa situação?

Fora isso a aplicação está funcionando perfeitamente cadastrando e consultando, só está dando problema na inconsistencia da URL como mencionado acima
[b]
NO JSF 2.0 AINDA OCORRE ISSO??? OU JÁ RESOLVERAM, LEVANDO EM CONSIDERAÇÃO QUE AS SOLUÇÕES QUE EU CONHEÇO SÃO:

  • UTILIZAR JBOSS PARA SOLUCIONAR
    OU
  • UTILIZAR O PADRÃO REDIRECT AFTER POST

TEM UMA SOLUÇÃO MELHOR??
[/b]

Alguma dica?

Por isso tem tem um pessoal querendo integrar o Struts ao JSF para solucionar esse problemas e integrar aos beneficios do JSF.

9 Respostas

hvivox

Segue a configuração faces-config.xml

<navigation-rule>
	 <display-name>pages/listarUsuarios.jsp</display-name>
	  <from-view-id>pages/listarUsuarios.jsp</from-view-id>	  
		  
	  <navigation-case>
			<from-outcome>NOVO</from-outcome>
			<to-view-id>/pages/cadastroUsuario.jsp</to-view-id>
	  </navigation-case>
</navigation-rule>

O primeiro arquivo .jsp é o index que está assim:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
	<META HTTP-EQUIV=REFRESH CONTENT="0;URL=/jsfcursofinal/pages/listarUsuarios.jsf">
</body>
</html>

Aguardo contribuições.
vlw

hvivox

Verifiquei em outras aplicações q baixei mas… a situação é a mesma por isso pergunto. Essa situação de inconsistencia na url é normal do JSF? isso é um bug? é um problema de configuração?

Sempre programei para DesKtop por isso estou com essa duvida.

vlw.

hvivox

Ninguém utiliza JSF? só preciso saber se essa situação é comum ou não! alguma ajuda?

rponte

Olá hvivox,

Sim, esta é uma situação comum com JSF. O framework trabalha apenas com o método Http POST, e sempre submete o formulário para a página de origem, por isso a url na barra de endereço parece estar sempre “desatualizada” com a página sendo exibida.

Você pode resolver essa “inconsistência” na url com o uso da tag redirect na regra de navegação, mas isso pode trazer alguns efeitos colaterais. E seria interessante entender estes efeitos. Este post tem uma explicação sucinta sobre o problema.

Abraços e boa sorte.

hvivox

Mto obrigado Rafael Ponte,

Vou dar uma olhada no post mencionado

A proposito comprei a revista mundo java nº 38 por conta do artigo escrito por vc e seu colega “10 maus hábitos do desenvolvedor JSF” e não tinha reparado que vc comenta sobre o problema no 8º hábito. Coincidencia não acha! mesmo assim mto obrigado pela força!

hvivox

*O fato da url está desatualizada “inconsistente” traz problemas para aplicação ou para o desenvolvimento (levando em consideração q não haverá auteração nos registros do banco de dados)? exemplo: em algum momento redirecionar para uma página errada?
*Por o JSF puro não possui uma solução para o problema? Não é errado buscar a solução em outra tecnologia como o JBoss, tornando o JSF dependente do JBoss?
*Frameworks trazem soluções para problemas rotineiros assim como o JSF, levando em consideração que esse problema acontece normalmente por que não implementar algo padrão da propria ferramenta, em vez se buscar soluções a parte em outras tecnologias ou demorar um pouco mais de tempo implementando um solução?
*Alguém fornecer informações sobre tokens como e onde implementar e desenvolver?

Posso estar extremante errado em meus questionamentos mais gostaria que os mesmos fossem exclarecidos, de forma passiva e compreensiva.

vlw.

hvivox

Já Existe uma solução consistente e segura pra essa situção???

Este problema acontecia no JSF 1.2 e no 2.0 acontece??

hvivox

alguma sugestão?

comedor_de_folhas

estou com esse problema tmbm
jsf 2.0 + primefaces

se alguem souber alguma solução ,plz posta ae…

Criado 27 de dezembro de 2009
Ultima resposta 25 de fev. de 2011
Respostas 9
Participantes 3