Boa tarde a todos,
Estou tentando carregar uma lista no meu combo box, a partir de uma informação digitada no campo input text do meu form.
A informação digitada no campo pode ser qualquer alfanumérico, ao clicar no botão “pesquisar”, ele faz uma query select com “like” no BD.
Ao detectar o erro percebi que o campo estava null, primeira coisa que fiz foi testar minha query no BD, mas esta funcionando perfeitamente.
Bem gostaria da ajuda de vcs para tentar solucionar esse problema.
Vou postar algumas classes para ajudar mais.
Estou usando o padrão MVC com Struts.
Segue os códigos:
Action:
public ActionForward executaListaRede( ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
CadUFDAO ufDAO = new CadUFDAO();
//System.out.println("CadUFDAO: antes de listar");
List listarUF = ufDAO.listaUF();
CadGRDAO grDAO = new CadGRDAO();
//System.out.println("CadGRDAO: antes de listar");
List listarGR = grDAO.listaGR();
CadRedeDAO redeDAO = new CadRedeDAO();
System.out.println("CadRedeAction: antes de listar");
CadRedeForm redeForm = (CadRedeForm) form;
List listarBuscaRede = redeDAO.listaBuscaRede(redeForm.getPesqrede());
System.out.println("Pesq Rede: " + redeForm.getPesqrede());
//Carregando um objeto form
List listaCadRedeForm = new ArrayList();
Iterator it = listarBuscaRede.iterator();
while (it.hasNext()){
CadRedeVO cadRede = new CadRedeVO();
cadRede = (CadRedeVO)it.next();
//CadRedeForm cadRedeForm = new CadRedeForm();
//System.out.println(Integer.toString(cadRede.cod_rede));
redeForm.setCodigo(Integer.toString(cadRede.getCodigo()));
System.out.println("Codigo: " + Integer.toString(cadRede.getCodigo()));
redeForm.setPesqrede(cadRede.getPesqrede());
System.out.println("Pesquisa de Rede: " + cadRede.getPesqrede());
redeForm.setDescRede(cadRede.getDescRede());
System.out.println("Descricao: " + cadRede.getDescRede());
redeForm.setUf(cadRede.getUf());
System.out.println("UF: " + cadRede.getUf());
redeForm.setCidade(cadRede.getCidade());
System.out.println("Cidade: " + cadRede.getCidade());
redeForm.setFone1(cadRede.getFone1());
redeForm.setContato1(cadRede.getContato1());
redeForm.setEmail1(cadRede.getEmail1());
redeForm.setFone2(cadRede.getFone2());
redeForm.setContato2(cadRede.getContato2());
redeForm.setEmail2(cadRede.getEmail2());
redeForm.setRazaoSocial(cadRede.getRazao());
redeForm.setInscrEst(cadRede.getInscEst());
redeForm.setCnpj(cadRede.getCnpj());
redeForm.setEndereco(cadRede.getEnder());
redeForm.setBanco(cadRede.getBanco());
redeForm.setAgencia(cadRede.getAgencia());
redeForm.setContaCorrente(cadRede.getConta());
redeForm.setCadFor(cadRede.getCadFor());
redeForm.setNumContrato(cadRede.getNumContrato());
redeForm.setEnderProm(cadRede.getEnderProm());
redeForm.setCodgr(Integer.toString(cadRede.getCodgr()));
redeForm.setCodgc(Integer.toString(cadRede.getCodgc()));
//System.out.println("GC: Depois do Form " + cadRede.getCodgc());
redeForm.setIsAtivo(cadRede.getIsAtivo());
//System.out.println("CadRedeAction: Depois do Form");
if (cadRede.getDataStatus() == null){
redeForm.setDataStatus("");
}else{
redeForm.setDataStatus(cadRede.getDataStatus().toString());
}
redeForm.setObs(cadRede.getObs());
//System.out.println("CadRedeAction: Depois do Form");
listaCadRedeForm.add(redeForm);
//System.out.println("CadRedeAction: Depois da lista");
}
//
System.out.println("CadRedeAction: depois de listar");
HttpSession session = request.getSession();
System.out.print("CadRedeAction: listaCadRede = ");
if (listarUF.isEmpty()){
session.removeAttribute("lstUF");
}else{
session.setAttribute("lstUF", listarUF);
}
if (listarGR.isEmpty()){
session.removeAttribute("lstGR");
}else{
session.setAttribute("lstGR", listarGR);
}
if (listarBuscaRede.isEmpty()){
//session.removeAttribute("lstUF");
session.removeAttribute("lstRede");
}
else{
session.setAttribute("lstRede", listarBuscaRede);
//session.setAttribute("lstRede", listaCadRedeForm);
}
return mapping.findForward("success");
}
Segue o DAO:
public class CadRedeDAO extends ConnectionDAO {
public List listaBuscaRede(String pesqrede){
//public List listaBuscaRede(CadRedeVO cadRede){
List listarBuscaRede = new ArrayList();
try{
System.out.println("Entrou CadRedeDAO");
Connection con = getConnection();
String sql = "SELECT cod_rede, desc_rede FROM tblrede WHERE desc_rede like '%?%'";
pstm = con.prepareStatement(sql);
//pstm.setInt(1, cadRede.getCodigo());
//pstm.setString(2, cadRede.getDescRede());
//System.out.println("SQL: " + sql);
//System.out.println("Resultado: " + cadRede.getCodigo());
//System.out.println("Resultado 1: " + cadRede.getDescRede());
System.out.println("Antes da query");
rs = pstm.executeQuery(sql);
System.out.println("antes do while");
while (rs.next()){
CadRedeVO cadRede = new CadRedeVO();
cadRede.setCodigo(rs.getInt("cod_rede"));
cadRede.setDescRede(rs.getString("desc_rede"));
System.out.println("Código Rede: " + rs.getInt("cod_rede"));
System.out.println("Descrição Rede: " + rs.getString("desc_rede"));
listarBuscaRede.add(cadRede);
};
System.out.println("depois do while");
}catch(java.sql.SQLException sqlException){
System.out.println("sqlException: "+ sqlException);
}catch(Exception e){
System.out.println("Exception: "+ e);
}finally{
try{
System.out.println("antes de fechar conexao.");
con.close();
System.out.println("depois de fechar conexao.");
}catch(SQLException sqlException){
System.out.println("sqlException: "+ sqlException);
}
}
return listarBuscaRede;
}
Segue uma parte do código jsp:
<HTML>
<HEAD>
<title>Redes</title>
<link REL="stylesheet" TYPE="text/css" HREF="<html:rewrite page="/jsp/css/raa.css"/>"/>
<script language="javascript" src="../javascript/funcoes.js"></script>
<script language = "javascript">
function buscaCidade(metodo)
{
alert(document.cadRedeForm.pesqrede.value);
alert(document.cadRedeForm.descRede.value);
//alert(document.cadRedeForm.codgr.options[1].value);
document.cadRedeForm.action='cadRede.do?method='+metodo;
document.cadRedeForm.submit();
/*for(var i=0; i < document.cadRedeForm.uf.lenght; i++)
{
document.cadRedeForm.uf.options[i].value == document.cadRedeForm.estado.value
alert(document.cadRedeForm.uf.options[i].value);
if (document.cadRedeForm.uf.options[i].value == document.cadRedeForm.estado.value){
alert(document.cadRedeForm.uf.options[i].value);
document.cadRedeForm.uf.options[i].value.selected = 1;
}
}*/
}
</script>
</HEAD>
<body bgColor="#4891c6">
<html:form action="cadRede.do">
<html:hidden property="estado"/>
<TABLE STYLE="BORDER-COLLAPSE: COLLAPSE" BORDERCOLOR="#111111" width="740" bgColor="#dceaf5" border="0">
<TR>
<TD bgColor="#4891c6" colSpan="6" height="15">
<p align="center">
<font face="Verdana" color="#ffffff" size="1">
<b>CADASTRO DE REDES</b>
</font>
</p>
</TD>
</TR>
</table>
<TABLE STYLE="BORDER-COLLAPSE: COLLAPSE" BORDERCOLOR="#111111" width="740" bgColor="#dceaf5" border="0">
<TR>
<TD width="50" height="14">
<font id="lblrede" face="verdana" color="#336699" size="1">Rede:</font>
</TD>
<TD width="120" height="14">
<html:text property="pesqrede" size="15"/>
</TD>
<TD width="80" height="14">
<a href="javascript:buscaCidade('executaListaRede');">
<img src="./jsp/imagens/PesquisarFunil_0.gif" alt="Pesquisar" border="0">
</a>
</TD>
<TD width="490" colSpan="2" height="14">
<html:select property="descRede" onchange="javascript:buscaCidade('executaCarregaInfoRede');">
<html:option value="">------------</html:option>
<c:forEach var="rede" items="${lstRede}">
<html:option value="${rede.codigo}">${rede.descRede}</html:option>
</c:forEach>
</html:select>
<font id="lblcodigo" face="verdana" color="#336699" size="1">Código:</font>
<html:text property="codigo" size="10"/>
</TD>
</TR>
</table>
Agradeço desde já,
Vitor