Galera… tenho essa simples tela de login com JSF e Richfaces… Queria saber se tem como eu mostrar um texto em baixo do botão mostrado os erros possívies (ex… usuario bloqueado… senha inválida) sem recarregar a página…
A validação do me usuário eu utilizo um ManagedBean e tem um DAO com hibernate que faz a pesquisa… Seguem todos abaixo…
Desde já agradeço…
<%--
Document : index
Created on : 18/02/2010, 13:10:34
Author : Vinicius
--%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<%@taglib prefix="rich" uri="http://richfaces.ajax4jsf.org/rich"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<f:view>
<center>
<h:form id="LoginForm">
<h:graphicImage value="login.jpg"/>
<br>
<br>
<rich:panel style="width:250px;">
<f:facet name="header">
Login - Consulta de Aulas
</f:facet>
<h:panelGrid id="lpg" columns="2">
<h:column>
<h:outputText value="Usuário"/>
<br>
<h:outputText value="Senha"/>
</h:column>
<h:column>
<h:inputText value="#{Usuario.id}" size="25"/>
<br>
<h:inputSecret value="#{Usuario.senha}" size="25"/>
</h:column>
</h:panelGrid>
<h:panelGrid style="align: center;" columns="2" id="lpg2" >
<h:column>
<h:commandButton value="Login" action="#{Usuario.logar}"/>
</h:column>
</h:panelGrid>
</rich:panel>
</h:form>
</center>
</f:view>
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package MngBeans;
import DAOs.UsuarioDAO;
import java.io.Serializable;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.Lob;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import org.hibernate.Session;
/**
*
* @author Vinicius
*/
@Entity
@Table(name = "usuario", catalog = "gnt_laboral", schema = "")
@NamedQueries({
@NamedQuery(name = "Usuario.findAll", query = "SELECT u FROM Usuario u"),
@NamedQuery(name = "Usuario.findById", query = "SELECT u FROM Usuario u WHERE u.id = :id"),
@NamedQuery(name = "Usuario.findByEMail", query = "SELECT u FROM Usuario u WHERE u.eMail = :eMail")})
public class Usuario implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Basic(optional = false)
@Column(name = "ID")
private String id;
@Basic(optional = false)
@Lob
@Column(name = "SENHA")
private String senha;
@Column(name = "E_MAIL")
private String eMail;
@Basic(optional = false)
@Lob
@Column(name = "NOME")
private String nome;
@JoinColumn(name = "STATUS_USER_ID", referencedColumnName = "ID")
@ManyToOne(optional = false)
private StatusUser statusUserId;
public Usuario() {
}
public Usuario(String id) {
this.id = id;
}
public Usuario(String id, String senha, String nome) {
this.id = id;
this.senha = senha;
this.nome = nome;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getSenha() {
return senha;
}
public void setSenha(String senha) {
this.senha = senha;
}
public String getEMail() {
return eMail;
}
public void setEMail(String eMail) {
this.eMail = eMail;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public StatusUser getStatusUserId() {
return statusUserId;
}
public void setStatusUserId(StatusUser statusUserId) {
this.statusUserId = statusUserId;
}
@Override
public int hashCode() {
int hash = 0;
hash += (id != null ? id.hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object) {
// TODO: Warning - this method won't work in the case the id fields are not set
if (!(object instanceof Usuario)) {
return false;
}
Usuario other = (Usuario) object;
if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
return false;
}
return true;
}
public String logar() {
Session session = Util.HibernateUtil.getSessionFactory().openSession();
UsuarioDAO acessoDAO = new UsuarioDAO(session);
return acessoDAO.verificaAutenticacao(this);
}
@Override
public String toString() {
return "MngBeans.Usuario[id=" + id + "]";
}
}
package DAOs;
import MngBeans.Usuario;
import org.hibernate.Query;
import org.hibernate.Session;
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author Vinicius
*/
public class UsuarioDAO {
private Session session;
public UsuarioDAO(Session session) {
this.session = session;
}
/**
* @verifica se o usuário está autorizado para logar no sistema
*/
@SuppressWarnings("unchecked")
public String verificaAutenticacao(Usuario usr) {
Query query = session.createQuery("SELECT u FROM Usuario u WHERE u.id = :id AND u.senha = :pw");
query.setParameter("pw", usr.getSenha());
query.setParameter("id", usr.getId());
Usuario user = (Usuario) query.uniqueResult();
if (user == null) {
return "usr_erro";
} else if (user.getStatusUserId().getId() == 1){
return "usr_ok";
}else{
return "usr_erro";
}
}
}