0
I have a login screen in which the email and password are already registered in the bank, however I am not able to login with this data that are already recorded in the bank. In the loginBean class I need to not leave static, but according to what is recorded in the bank.
OBS1: ALL THESE CLASSES I DOUBT ARE CORRECT.
OBS2: USER REGISTRATION VIEW IS DOING EL CORRECTLY. Screen with controller is recording in the database normally.
Look at the classes:
Model class:
@Entity
public class Usuario implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue
private Long id;
private String nome;
private String email;
private String senha;
getters e setters
interface:
public interface UsuarioDAO {
public boolean verificarUsuario(Usuario usuario);
User Classohibernate
public class UsuarioDAOHibernate implements UsuarioDAO {
private Session sessao;
@Override
public boolean verificarUsuario(Usuario usuario) {
Query query = sessao.createQuery("from Usuario u where u.email = :email and u.senha = :senha");
query.setParameter("email", usuario.getEmail());
query.setParameter("senha", usuario.getSenha());
return query != null;
}
Usuariorn class:
public class UsuarioRN {
private UsuarioDAO usuarioDAO;
public boolean verificar(Usuario usuario) {
return this.usuarioDAO.verificarUsuario(usuario);
}
Loginbean class:
@ManagedBean
@SessionScoped
public class LoginBean implements Serializable {
private Usuario usuario = new Usuario();
public String login() {
FacesContext context = FacesContext.getCurrentInstance();
if ("admin@admin".equals(this.usuario.getEmail()) && "123".equals(this.usuario.getSenha())) {
this.usuario.setEmail(this.usuario.getEmail());
return "/admin/ConsultaClientes?faces-redirect=true";
} else {
usuario.setEmail(null);
FacesMessage mensagem = new FacesMessage("E-mail/Senha inválidos.");
mensagem.setSeverity(FacesMessage.SEVERITY_ERROR);
context.addMessage(null, mensagem);
return null;
}
}
Isn’t it just exchange if for "if(usuarioDAO.verifiUsuario(this.usuario))" ? This "this.usuario.setEmail(this.usuario.getEmail();" makes no sense to me.
– Fernando Mondo
No, because DAO user is an interface and has no instantiation.
– Frederico Queiroz
you must have an attribute like: private User ();
– Fernando Mondo