Duvida JSF (NAVIGATION RULE?)

5 respostas
R

Olá pessoal, sou novo no GUJ bem como em JAVA e JSF, e estou com um problema.
Estou desenvolvendo um sistema apenas de teste, onde tenho 3 paginas (uma de login, uma de manuntenção de cadastro e uma de listagem de registros).
Quando entro na pagina de login, o sistema valida o usuario e senha armazena em um atributo o nome do usuario e manda direto para tela de listagem (este envio é feito a partir de um clique em um botão).
Quando o usuario tentar entrar por exemplo na tela de listagem sem ter ido para tela de login, queria imediatamente enviar o mesmo para tela de login, e ae esta minha duvida/problema, isso tem como ser feito via navigation rule mesmo o usuario não clicando em um botão ou link???

Se alguem puder me ajudar agradeço.

Segue abaixo partes do codigo onde faço o tratamento:

bean ListaClientes.java

public ListaClientes(){
	String usuarioLogado = (String) getSessionScope().get("paramUsuarioLogado");
	if (usuarioLogado == null){
		doLoginUsuarioAction();
	}
}	

public String doLoginUsuarioAction(){
	return "agoraVai";
}

faces config

<navigation-rule>
	<from-view-id>/listaClientes.jsp</from-view-id>
	<navigation-case>
		<from-action>#{pc_ListaClientes.doClienteAlterarAction}</from-action>
		<from-outcome>manutClientes</from-outcome>
		<to-view-id>/manutClientes.jsp</to-view-id>
	</navigation-case>
	<navigation-case>
		<from-action>#{pc_ListaClientes.doClienteInserirAction}</from-action>
		<from-outcome>manutClientes</from-outcome>
		<to-view-id>/manutClientes.jsp</to-view-id>
	</navigation-case>

************************* abaixo onde chama a tela de login *****************

<navigation-case>
		<from-outcome>agoraVai</from-outcome>
		<to-view-id>/loginSistema.jsp</to-view-id>
	</navigation-case>

</navigation-rule>

[]'s

Rogério Farto

5 Respostas

Javabuntu

Bem vindo ao fórum. Primeiro tem algumas dicas interessantes pra fazer um post visivelmente aceitável, senão suas chances de ser respondido diminuem, veja:

http://www.guj.com.br/posts/list/50115.java

respondendo sua dúvida, o que você precisa é tratar a autorização de acesso, você poder fazer isso com filtros.

veja abaixo um post com a mesma dúvida que você:

http://www.guj.com.br/posts/list/94898.java

Sempre antes de postar, use o campo “Pesquisar”, é muito provável que sua dúvida já tenha sido de alguém, como foi neste caso.

P

Viva Rogerio,

Tá a usar xhtml certo?

No seu ficheiro page.xml correspondente à tela de listagem tenta colocar o login-required= true como no exemplo abaixo

<page xmlns="http://jboss.com/products/seam/pages"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://jboss.com/products/seam/pages http://jboss.com/products/seam/pages-2.1.xsd"
      login-required="true">

assim sempre que tentar entrar sem o login ele vai redirccioná-lo automaticamente para o seu login.

Javabuntu

pcaeiro:
Viva Rogerio,

Tá a usar xhtml certo?

No seu ficheiro page.xml correspondente à tela de listagem tenta colocar o login-required= true como no exemplo abaixo

<page xmlns="http://jboss.com/products/seam/pages"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://jboss.com/products/seam/pages http://jboss.com/products/seam/pages-2.1.xsd"
      login-required="true">

assim sempre que tentar entrar sem o login ele vai redirccioná-lo automaticamente para o seu login.


mas ele não está usando o Jboss Seam pra fazer isso :roll:

P

Tem razão, desculpa,

como eu só uso seam acho que todo a gente tem de o fazer… :oops:

Javabuntu

pcaeiro:
Tem razão, desculpa,

como eu só uso seam acho que todo a gente tem de o fazer… :oops:

com o Seam é bem mais prático mesmo, porém pra iniciantes é melhor um pouco menos de facilidades, senão não conhece o principal que tem por trás do framework, suas limitações, vantagens etc.

Criado 19 de fevereiro de 2009
Ultima resposta 20 de fev. de 2009
Respostas 5
Participantes 3