Bom tentei fazer uma modularização da seguinte maneira…
Peguei esse exemplo em uma aplicação que achei na net e lá não comentava nada de configuração de xml…
Porém me retorna o seguinte erro
[color=“black”]“Name jdbc is not bound in this Context”[/color]
DBAccessLogin.java
package struts;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import modelo.Usuario;
import struts.DBAccess;
import struts.DBAccessException;
public class DBAccessLogin {
//Método usado na tela consultaUsuario.jsp, para consultar todos os dados do usuário
public static ArrayList consultar(String usuario, String nome)
{
String where = "";
//Verifica quais campos foram informados
if (nome=="" && usuario!=""){
where = "WHERE usuario LIKE '"+usuario+"%'";
}else if((nome!="") && (usuario=="")){
where = "WHERE nome LIKE '"+nome+"%'";
}else if((nome!="") && (usuario!="")){
where = "WHERE nome LIKE '"+nome+"%' AND usuario LIKE '"+usuario+"%'";
}
//Guarda na variável "sql" o comando select a ser excutado
String sql = "SELECT * FROM \"Usuario\" "
+ where;
Connection conexao = null;
PreparedStatement statement = null;
ResultSet rs = null;
try {
//Cria objeto to tipo ArrayList
ArrayList usuarios = new ArrayList();
Usuario usu;
//Pega a conecão
conexao = DBAccess.getConexao();
statement = conexao.prepareStatement(sql);
rs = statement.executeQuery();
while (rs.next())
{
usu = new Usuario();
usu.setUsuario(rs.getString("usuario"));
usu.setNome(rs.getString("nome"));
usu.setSenha(rs.getString("senha"));
usu.setTipoUsuario(rs.getString("tipo_usuario"));
if (rs.getLong("tipo_usuario") == 1){
usu.setTipoUsuario("ADMINISTRADOR");
}else{
usu.setTipoUsuario("USUÁRIO");}
usuarios.add(usu);
}
//Retorna para o action objeto do tipo ArrayList
return usuarios;
} catch (SQLException e) {
throw new DBAccessException("SQLException: " + e.getMessage());
} catch (Exception e) {
throw new DBAccessException("Exception: " + e.getMessage());
} finally {
fecharTudo(conexao, statement, null);
}
}
}
LoginAction.java
package struts;
import struts.DBAccessException;
import struts.DBAccessLogin;
import modelo.Usuario;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.*;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionForward;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.Statement;
import java.sql.SQLException;
import struts.DBAccess;
import struts.LoginActionBean;
import java.sql.ResultSet;
import java.sql.SQLException;
public class LoginAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception
{
if (isCancelled(request))
{
request.getSession().invalidate();
return mapping.findForward("welcome");
}
else
{
try
{
//UsuarioForm UsuarioForm = (UsuarioForm)form;
LoginActionBean LoginActionBean = (LoginActionBean)(form);
ArrayList usuarios = DBAccessLogin.consultar(LoginActionBean.getNome(),LoginActionBean.getSenha());
//ArrayList usuarios = dados.UsuarioDAO.consultar(UsuarioForm.getUsuario(),UsuarioForm.getNome());
}
catch (Exception e)
{
throw new DBAccessException(" " + e.getMessage() + "!! ");
}
return mapping.findForward("success");
}
}
}
DBAccess.java
package struts;
import java.sql.Connection;
import java.sql.SQLException;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
import struts.DBAccessException;
public class DBAccess {
public static Connection getConexao() throws DBAccessException {
try {
//serviço de nomes
InitialContext cxt = new InitialContext();
DataSource ds = (DataSource) cxt.lookup("java:/comp/env/jdbc/Teste");
return ds.getConnection();
} catch (NamingException e) {
throw new DBAccessException("NamingException: " + e.getMessage());
} catch (SQLException e) {
throw new DBAccessException("SQLException: " + e.getMessage());
}
}
}
LoginActionBean.java
package struts;
import javax.servlet.ServletRequest;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
public class LoginActionBean extends org.apache.struts.action.ActionForm {
private String nome;
private String senha;
//
public void setNome(String nome)
{
this.nome=nome;
}
//
public String getNome()
{
return this.nome;
}
//
public void setSenha(String senha)
{
this.senha = senha;
}
//
public String getSenha()
{
return this.senha;
}
public LoginActionBean()
{
super();
}
public ActionErrors validate(ActionMapping mapping, HttpServletRequest request)
{
ActionErrors errors = new ActionErrors();
if((getNome().equals("")) || (getNome().length()<1))
{
errors.add("nome",new ActionMessage("error.nome.required"));
}
if((getSenha().equals("")) || (getSenha().length()<1))
{
errors.add("nome",new ActionMessage("error.senha.required"));
}
return errors;
}
public void reset(ActionMapping mapping, ServletRequest request)
{
this.nome=null;
this.senha=null;
}
}
DBAccessException.java
package struts;
public class DBAccessException extends RuntimeException
{
public DBAccessException(String mensagem)
{
super(mensagem);
}
public DBAccessException ()
{
super();
}
}