Problemas com login JSF2 - Primefaces [RESOLVIDO]

6 respostas
maxmustang

Fala galera blz?
Então, meu problema é o seguinte
eu tenho uma pagina xhtml chamada login… que usa o componente growl do primefaces.
Quando o usuario existe, eu consigo fazer o login, normalmente.
Mas eu gostaria que quando o usuario nao existisse… eu teria uma msg na tela, no meu caso… pra se o login ou a senha estiverem vazios… ele joga a msma, so nao joga qnd o usuario nao existe

public String efetuaLogin() {
        UsuarioDAO dao = new UsuarioDAO();
        boolean loginValido = dao.existeUsuario(usuario);
        if (loginValido) {
            return "mainpage?faces-redirect=true";
        } else {
            FacesContext c = FacesContext.getCurrentInstance();
            FacesMessage m = new FacesMessage(FacesMessage.SEVERITY_ERROR, "Usuario ou Senha incorretos", "Usuario ou Senha incorretos");
            c.addMessage(null, m);
            usuario = new Usuario();
            return "login";
        }
    }

e alem disso… nem redireciona novamente para a pagina de login
e nem da um new no usuario

abs

6 Respostas

Polverini

vc ta fazendo o update no growl ?? posta a pagina

maxmustang
<div id="blocoConteudo">
                    <div id="blocoMensagem">
                        <p:growl id="growl" showDetail="true" life="3000"/>
                    </div>
                    <div class="container">
                        <h:form>
                            <fieldset>
                                <legend>Login do Sistema</legend>
                                <h:panelGrid
                                    columns="2" styleClass="campos">
                                    <h:outputLabel value="Login:" />
                                    <h:inputText value="#{loginBean.usuario.login }" />

                                    <h:outputLabel value="Senha:" />
                                    <h:inputSecret value="#{loginBean.usuario.senha }" />
                                    <p:commandButton value="Efetuar Login" action="#{loginBean.efetuaLogin }" update="growl" />
                                </h:panelGrid>
                            </fieldset>
                        </h:form>

to sim :smiley:

Polverini

Se não me engano para troca de pagina tem que usar o actionListener ao invés da action, já tentou atualizar a div do growl ou retirala de la para ver se atualiza ??

maxmustang

então cara… tirei a div do growl, e usei o actionListener
não funcionou :frowning:

coloquei la o no return o faces-redirect=true;
ele até zera os atributos
mas nao aparece a mensagem na tela

maxmustang

falae
entao
resolvi jogando null no return… quando o usuario nao existe
hehe

rbortolon

Olá Max,

Li sobre o problema que teve e estou com o mesmo problema porém o sistema deve realizar o redirect para outra página.

No meu caso, no sucesso da gravação de dados do usuário (formulário de registro), o sistema precisa redirecionar para a página de login. E como no seu caso, a mensagem é “engolida”. Já li alguns assuntos que isso ocorre devido ao escopo (me corrija se eu estiver enganado). O escopo do meu formulário tem que ser “viewScoped” pois utilizo combosAninhadas onde ao selecionar Estado, há uma atualização na página (ajax mesmo) para carregar as cidades. Por isso tenho que manter o escopo view. Se souber de alguma solução para este problema, fico grato!

Sds,
Rodrigo

Criado 28 de março de 2011
Ultima resposta 22 de ago. de 2011
Respostas 6
Participantes 3