esotu com uma tela de Login, só que na hora que informo a senha incorreta, ele não mostra a mensagem.
OBS: está tudo normal, apenas na hora de mostrar a senha inválida não está dando certo.
public String entrar() {
System.out.println("Fazendo Login" +usuario.getLogin() + usuario.getSenha());
boolean entrar = new LoginDAO().existeUsuario(this.usuario);
if (entrar) {
//Guarda os dados do usuário, em uma chave usuarioLogado
FacesContext context = FacesContext.getCurrentInstance();
context.getExternalContext().getSessionMap().put("usuarioLogado", this.usuario); //chave e valor da sessão
return "Home?faces-redirect=true";
}
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR,
"usuario ou senha incorrteta!", "usuario ou senha incorrteta!"));
// FacesContext.getCurrentInstance().getExternalContext().getFlash().setKeepMessages(true); 2 requisições ele mostra a mensagem de erro.
return "Login?faces-redirect=true";
}
Meu DAO.
public boolean existeUsuario(Usuario usuario) {
EntityManager manager = new JPAUtil().getManager();
TypedQuery<Usuario> query = manager
.createQuery("select u from Usuario u where u.login = :pLogin and u.senha = :pSenha", Usuario.class);
query.setParameter("pLogin", usuario.getLogin());
query.setParameter("pSenha", usuario.getSenha());
try {
Usuario usu = query.getSingleResult();
} catch (NoResultException e) {
return false;
}
manager.close();
return true;
}
meu xhtml
<h:form id="formulario-login">
<div id="login-dialog">
<p:messages autoUpdate="true" closable="true" />
<h:panelGrid columns="2" styleClass="grid-login">
<p:outputLabel value="usuário:" for="login" />
<p:inputText size="30" id="login" value="#{loginBean.usuario.login}" required="true" />
<p:outputLabel value="senha:" for="senha" style="float:right;" />
<p:password size="30" id="senha" value="#{loginBean.usuario.senha}" required="true"
feedback="true" inline="true" promptLabel="informe sua senha."
weakLabel="fraca" goodLabel="razoável" strongLabel="forte"/>
<h:panelGroup />
<p:commandButton value="Acessar" update="@form" action="#{loginBean.entrar}"/>
</h:panelGrid>
</div>
</h:form>