JSTL + Consulta +?

4 respostas
rodrigodsw2005

Ola pessoal, estou tendo um problema aqui.. esse codigo esta rodando.. porem nao é listado na tela a categoria que o cliente pertence. PQ??? Como deveria ser o código??? Obrigado

CadastroVO
public CategoriaVO getCategoria() {
        return categoria;
    }

    public void setCategoria(CategoriaVO categoria) {
        this.categoria = categoria;
    }
CadastroDAO
public List getBuscaCpf() throws SQLException {

        db = new ConexaoBD();
        List lista = new ArrayList();

        consultacpf = db.getConn().prepareStatement("SELECT cd.nome, cd.rg, ct.categoria FROM cadastro cd inner join categoria ct on cd.idcategoria = ct.idcategoria where cpf = ?");
        consultacpf.setString(1, cpf.getCpf());
        ResultSet rs = consultacpf.executeQuery();


        while (rs.next()) {
            CadastroVO cadastrovo = new CadastroVO();
            CategoriaVO categoriavo = new CategoriaVO();
          
            cadastrovo.setNome(rs.getString("nome"));
            cadastrovo.setRg(rs.getString("rg"));
            categoriavo.setCategoria(rs.getString("categoria"));
            lista.add(cadastrovo);
            lista.add(categoriavo);
        }
        return lista;

    }
buscacliente.jsp
<c:forEach var="x" items="${cadastrodao.buscaCpf}">
  <tr class="tr2">
    <td><a href="../pesagem/pesagemcliente.jsp?cpf=<% out.print(request.getParameter("cpf"));%>">${x.nome}</a></td>
    <td> ${x.rg}</td>
    <td> ${x.categoria}</td>
  </tr>
</table>

</c:forEach>

4 Respostas

maurenginaldo

Oi Rodrigo,

vc declarou o atributo List BuscaCpf?

Vc está usando Jsp ou Jsf?

rodrigodsw2005

Ola tudo bem? eu estou usando JSP/JSTL … Como assim declarei atributo, List BuscaCpf… esse é o metodo não?

rodrigodsw2005
public List<CadastroVO> getBuscaCpf() throws SQLException {

        db = new ConexaoBD();
        List lista = new ArrayList();

        consultacpf = db.getConn().prepareStatement("SELECT cd.nome, cd.rg, ct.categoria FROM cadastro cd inner join categoria ct on cd.idcategoria = ct.idcategoria where cpf = ?");
        consultacpf.setString(1, cpf.getCpf());
        ResultSet rs = consultacpf.executeQuery();


        while (rs.next()) {
            CadastroVO cadastrovo = new CadastroVO();
            CategoriaVO categoriavo = new CategoriaVO();
          
            cadastrovo.setNome(rs.getString("nome"));
            cadastrovo.setRg(rs.getString("rg"));
            categoriavo.setCategoria(rs.getString("categoria"));
            cadastrovo.setCategoria(categoriavo);
            lista.add(cadastrovo);
            
            
        }
        return lista;

    }

desse jeito .. o resultado que aparece na tela: VO.CategoriaVO@e73236, pq??? o que eu estou errando???

maurenginaldo

Oi Rodrigo,
vamos tentar uma solução.

Para vc pegar um objeto via Jstl no Jsp vc tem que jogar ele no request ou na sessão.
Do jeito que vc fez, vc esta tentando acessar um metodo diretamente via Jsp, para fazer isso da um pouco mais de trabalho, tem que criar um tag lib descriptor, é mais complicado…

Vamos tentar resolver jogando o objeto na sessão:

  1. No final do getBuscaCpf vc joga a lista para a sessão
request.setAttribute("listaCPF", lista)
  1. O seu getBuscaCpf() está dentro de um servlet? Se sim chame ele no construtor do Servlet.

  2. Altere a linha do seu Jsp

<c:forEach var="x" items="${listaCPF}">

Tenta aí.

Criado 18 de janeiro de 2008
Ultima resposta 19 de jan. de 2008
Respostas 4
Participantes 2