Pessoal , tenho um problema quanto a lógica de um login.
Eu não estou conseguindo penar como trabalhar com o login e a senha no método.
estou usando o struts2 , porém minha dúvida não é quanto a ele e sim ao método no DAO.
Seguindo o código da action :
package br.com.cfr.action;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Result;
import br.com.cfr.jdbc.dao.UsuarioDAO;
import br.com.cfr.jdbc.modelo.Usuario;
import com.opensymphony.xwork2.ActionContext;
public class LoginAction {
private Usuario usuario;
@Action(value = "login", results = {
@Result(name = "ok", location = "menu.jsp"),
@Result(name = "invalido", location = "formulario-login.jsp") })
public String login() {
if (new UsuarioDAO().validaLogin(usuario)) {
ActionContext.getContext().getSession()
.put("usuarioLogado", usuario);
return "ok";
}
return "invalido";
}
public Usuario getUsuario() {
return usuario;
}
public void setUsuario(Usuario usuario) {
this.usuario = usuario;
}
}
O problema é que esse exemplo que estou seguindo ele só está passando um parametro no método validaLodin(usuario) .
E eu achava que teria que passar dois , pois vou precisar do login e da senha .
Por isso fiz meu DAO assim :
package br.com.cfr.jdbc.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import br.com.cfr.jdbc.ConnectionFactory;
import br.com.cfr.jdbc.modelo.Usuario;
public class UsuarioDAO {
private Connection connection;
public UsuarioDAO() throws ClassNotFoundException{
this.connection = new ConnectionFactory().getConnection();
}
private void validaLogin(String login ,String senha) {
String sql = "select * from tabuser where nome=? , senha=?";
try {
PreparedStatement stmt = connection.prepareStatement(sql);
Usuario usuario = new Usuario();
stmt.setString(1,usuario.getNome() );
stmt.setString(2,usuario.getSenha() );
}catch (SQLException e){
throw new RuntimeException(e);
}
}
}
O problema é que não bate pois eu estou passando apenas um parâmetro no validaLogin .
Eu já tentei mudar o parâmetro do método no DAO para Usuario porém ai o action reclama e fala que o método tem que retornar um boolean .
Eu já refiz e até consegui deixa o código apto a compilar , passando como retorno um booleano , porém eu ainda não entendi muito bem , como que eu estou recebendo os dois parâmetros da tela.
E creio que o meu método não esteja validando muita coisa , ele só está tentando consultar no banco .
Deixando o método recebendo duas strings validar não seria problema só usuria o equals , porém usando o método passando o (Usuario usuario) como que seria??