[RESOLVIDO]Tela de Login, Action ou ActionListener

Boa tarde pessoal.

Estou com a seguinte situação: Estou desenvolvendo uma tela de login e no botão de login estou chamado uma função para validar os dados do usuário no BD. No entanto, se eu utilizo o método “action”, após validar o usuário ele é redirecionado para a página home, mas não exibi a mensagem de boas vindas e se uso o método “actionListener” é exibida a mensagem e não redireciona para a pagina home. Gostaria de saber como vocês resolvem essa situação.
Segue abaixo o código da chamada da função e a função utilizada para validar o login.

Botão de Login

<p:commandButton styleClass="btn btn-primary" tabindex="3" id="entrar" value="Entrar" icon="check" action="#{loginBean.validaLogin}" onclick="javascript:envia()" type="submit" update=":growl" title="Clique Para Entrar" />

Função de validação de usuário

	public String validaLogin() {	
		
        RequestContext context = RequestContext.getCurrentInstance();  
        FacesMessage msg = null;          
				
		retornoValidacao = loginService.validarLogin(getEmail(),getSenha());
		
		String retornoUsuario;
		
		if(retornoValidacao == null){			
			retornoUsuario = "failure";
			usuario = new Usuario();
						
            msg = new FacesMessage(FacesMessage.SEVERITY_WARN, "Erro", "Login / Senha inválida");			
			
		}else{
			retornoUsuario = "success";
			getmySession();
			setUsuarioLogado(retornoValidacao.getNome());
			System.out.println("Nome :"+getUsuarioLogado());
						 
           msg = new FacesMessage(FacesMessage.SEVERITY_INFO, "Seja Bem Vindo", retornoValidacao.getNome()); 			
			
		}		
		
	    FacesContext.getCurrentInstance().addMessage(null, msg);  	      	
		System.out.println("retornoUsuario :"+retornoUsuario);		
		return retornoUsuario;
	}

Muito obrigado galera.
Abs.,

As mensagens são mantidas apenas na mesma requisição. Como você provavelmente está fazendo um redirect (que gera 2 requests), ela está fora de escopo. Você pode fazer um forward ao invés de um redirect, assim a mensagem seria mantida.

Na minha opinião seria mais simples deixar a mensagem de boas vindas na tela inicial. É o que fazemos aqui. FacesMessages são utilizadas sempre em conjunto com ActionListeners e Ajax, para alertar o usuário sem mudar a view em que ele se encontra.

Abraço

[quote=Leonardo Gaona]As mensagens são mantidas apenas na mesma requisição. Como você provavelmente está fazendo um redirect (que gera 2 requests), ela está fora de escopo. Você pode fazer um forward ao invés de um redirect, assim a mensagem seria mantida.

Na minha opinião seria mais simples deixar a mensagem de boas vindas na tela inicial. É o que fazemos aqui. FacesMessages são utilizadas sempre em conjunto com ActionListeners e Ajax, para alertar o usuário sem mudar a view em que ele se encontra.

Abraço[/quote]

Muito obrigado meu amigo! era uma coisa muito simples, porém como ainda não tinha o conhecimento de redirect x forward, não sabia nem o que pesquisar.

Mais uma vez obrigado.

Abs.,

Opa, se precisar estamos ai :slight_smile:

Edita o tópico e deixa com a tag [RESOLVIDO], pode facilitar pra alguém no futuro.

Abraço

[quote=Leonardo Gaona]Opa, se precisar estamos ai :slight_smile:

Edita o tópico e deixa com a tag [RESOLVIDO], pode facilitar pra alguém no futuro.

Abraço[/quote]
Tópico editado!