Pessoal, estou com dificuldade de fazer a autenticação do usuario que está registrado em banco de dados e está ocorrendo o erro javax.el.MethodNotFoundException: /index.xhtml @18,84 action="#{loginFaces.valicaoDeLogin}": Method not found: controller.LoginFaces@fd3ee0e.valicaoDeLogin() .
Classe LoginDTO
package dto;
public class LoginDTO {
private String usuario;
private String senha;
public LoginDTO() {
}
public LoginDTO(String usuario, String senha) {
this.usuario = usuario;
this.senha = senha;
}
public String getUsuario() {
return usuario;
}
public void setUsuario(String usuario) {
this.usuario = usuario;
}
public String getSenha() {
return senha;
}
public void setSenha(String senha) {
this.senha = senha;
}
}
Classe DaoUtil
package model;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.Statement;
public abstract class DaoUtil {
private Connection cx = null;
private Connection getConection() throws SQLException, ClassNotFoundException{ //conexão padrão
if(this.cx == null){
String url = "jdbc:mysql://localhost:3306/helpus";
String psw = "";
String user = "root";
Class.forName("com.mysql.jdbc.Driver");
cx = DriverManager.getConnection(url, user, psw);
}
return this.cx;
}
public void getFechaConnection() throws SQLException{ //fecha conexão
if(this.cx != null){
this.cx.close();
this.cx = null;
}
}
public PreparedStatement getPreparedStatement(String sql) throws SQLException, ClassNotFoundException{
return this.getConection().prepareStatement(sql);
}
public Statement getStatement() throws SQLException, ClassNotFoundException{
return this.getConection().createStatement();
}
}
Classe LoginDAO
package model.DAO;
import java.sql.ResultSet;
import dto.LoginDTO;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import model.DaoUtil;
public class LoginDAO extends DaoUtil{
public LoginDAO() {
super();
}
public boolean ValidarLogin(LoginDTO login) throws SQLException, ClassNotFoundException{
boolean retorno;
String sql = "SELECT usuario, senha FROM tb_usuario WHERE usuario=? and senha=? ";
PreparedStatement ps = super.getPreparedStatement(sql);
ps.setString(1, login.getUsuario());
ps.setString(2, login.getSenha());
ResultSet rs = ps.executeQuery();
if(rs.next()){
rs.getString("usuario");
rs.getString("senha");
retorno = true;
}else
retorno = false;
ps.close();
super.getFechaConnection();
return retorno;
}
}
Classe LoginFaces
package controller;
import dto.LoginDTO;
import java.sql.SQLException;
import model.DAO.LoginDAO;
public class LoginFaces {
private LoginDTO logDTO;
private LoginDAO logDAO = new LoginDAO();
public LoginFaces() {
logDTO = new LoginDTO();
}
public LoginDTO getLogDTO() {
return logDTO;
}
public void setLogDTO(LoginDTO logDTO) {
this.logDTO = logDTO;
}
public String ValicaoDeLogin() throws SQLException, ClassNotFoundException{
if(!logDAO.ValidarLogin(logDTO)){
System.out.println("Login/Senha inválidos");
}
return "VaiParaPaginaPrincipal";
}
}
Página JSF - index
<h1>Bem Vindo(a) ao Sistema ?!</h1>
<br/>
<h:outputLabel value="Login :"/>
<h:inputText value="#{loginFaces.logDTO.usuario}"/>
<br/>
<h:outputLabel value="Senha :"/>
<h:inputText value="#{loginFaces.logDTO.senha}"/>
<br/>
<h:commandButton value="Entrar" action="#{loginFaces.valicaoDeLogin}"/>