Exibir informações em uma Tabela

6 respostas Resolvido
javaweb
jairodione

Boa Tarde!

Na lista de bairros existentes, o sistema não me exibe na tabela o que tem na tabela do BD mas sim o nome da coluna.
Abaixo está a classe modelo:

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package br.com.jairo.modelo;

/**
 *
 * @author Jairo
 */
public class Bairros {
    private int baicodigo;
    private String baidescricao;

    /**
     * @return the baicodigo
     */
    public int getBaicodigo() {
        return baicodigo;
    }

    /**
     * @param baicodigo the baicodigo to set
     */
    public void setBaicodigo(int baicodigo) {
        this.baicodigo = baicodigo;
    }

    /**
     * @return the baidescricao
     */
    public String getBaidescricao() {
        return baidescricao;
    }

    /**
     * @param baidescricao the baidescricao to set
     */
    public void setBaidescricao(String baidescricao) {
        this.baidescricao = baidescricao;
    }
}

Abaixo o metodo que utilizo no DAO para lsitar as informações:

//metodo que retorna a lista de bairros paginado
    public List getListaBairroPaginado(int pagina, String ordenacao, String pesquisa, String campoapesquisar) throws SQLException {

        int limite = 4;
        int offset = (pagina * limite) - limite;

        String sql = "";
        PreparedStatement ps = null;
        ResultSet rs = null;
        List<Bairros> listaBairros = new ArrayList<Bairros>();
        try {
            if (campoapesquisar.equals("baicodigo")) {
                if (pesquisa.equals("")) {
                    sql = "select * from bairros where " + campoapesquisar + " > 0 order by " + ordenacao + " LIMIT 4 OFFSET " + offset;
                } else {
                    sql = "select * from bairros where " + campoapesquisar + " = " + pesquisa + " order by " + ordenacao + " LIMIT 4 OFFSET " + offset;
                }
            } else {
                sql = "select * from bairros where " + campoapesquisar + " like '%" + pesquisa + "%' order by " + ordenacao + " LIMIT 4 OFFSET " + offset;
            }
            ps = conexao.prepareStatement(sql);
            rs = ps.executeQuery();
            while (rs.next()) {
                Bairros bairros = new Bairros();
                bairros.setBaicodigo(rs.getInt("baicodigo"));
                bairros.setBaidescricao("baidescricao");
                listaBairros.add(bairros);
            }
            return listaBairros;
        } catch (SQLException er) {
            Logger.getLogger(BairroDAO.class.getName()).log(Level.SEVERE, null, er);
        } finally {
            //conexao.close();
            //ps.close();
            //rs.close();
        }
        return null;
    }

Abaixo está o servlet:

response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();

        RequestDispatcher rd = null;

        String baiCodigo = request.getParameter("baicodigo");
        String baiDescricao = request.getParameter("baidescricao");

        Bairros bairros = new Bairros();
        if(baiCodigo != null)
            bairros.setBaicodigo(Integer.parseInt(baiCodigo));
        bairros.setBaidescricao(baiDescricao);

        BairroDAO bairroDAO = new BairroDAO();

        String acao = request.getParameter("acao");

        if (acao == null) {
            acao = "listarBairro";
        }

        if (acao.equals("Alterar")) {
            bairroDAO.alteraBairro(bairros);
            rd = request.getRequestDispatcher("/BairrosCRUD?acao=listarBairro");
        } else if (acao.equals("excluir")) {
            bairroDAO.excluiBairro(bairros);
            rd = request.getRequestDispatcher("/BairrosCRUD?acao=listarBairro");
        } else if (acao.equals("listarBairro")) {
            int numPagina = 1;

            if (request.getParameter("numpagina") != null) {
                numPagina = Integer.parseInt(request.getParameter("numpagina"));
            }
            try {
                String ordenacao = request.getParameter("ordenacao");
                if (ordenacao == null) {
                    ordenacao = "baicodigo";
                }

                String pesquisa = request.getParameter("pesquisa");
                if (pesquisa == null) {
                    pesquisa = "";
                }

                String campoapesquisar = request.getParameter("campoapesquisar");
                if (campoapesquisar == null) {
                    campoapesquisar = "baicodigo";
                }

                List listaBairros = bairroDAO.getListaBairroPaginado(numPagina, ordenacao, pesquisa, campoapesquisar);
                String totalRegistros = bairroDAO.totalRegistros(pesquisa, campoapesquisar);
                request.setAttribute("sessaoListaBairro", listaBairros);
                request.setAttribute("sessaoQtdTotalBairros", totalRegistros);
                rd = request.getRequestDispatcher("/bairros.jsp");
            } catch (SQLException e) {
                Logger.getLogger(BairrosCRUD.class.getName()).log(Level.SEVERE, null, e);
            }
        } else if (acao.equals("Gravar")) {
            bairroDAO.novoBairro(bairros);
            rd = request.getRequestDispatcher("/BairrosCRUD?acao=listarBairro");
        }
        rd.forward(request, response);

abaixo o codigo que lista a tabela na pagina JSP:

int limite = 4;
    String numPagina = request.getParameter("numpagina");

    if (numPagina == null) {
        numPagina = "1";
    }

    java.util.List listaDeBairros = (java.util.List) request.getAttribute("sessaoListaBairro");

    String ordenacao = request.getParameter("ordenacao");
    if (ordenacao == null) {
        ordenacao = "baicodigo";
    }

    String pesquisa = request.getParameter("pesquisa");
    if (pesquisa == null) {
        pesquisa = "";
    }

    String campoapesquisar = request.getParameter("campoapesquisar");
    if (campoapesquisar == null) {
        campoapesquisar = "baicodigo";
    }

    out.println("<table border='1'>");
    out.println("<form action='BairrosCRUD' method='get'>");
    out.println("<tr><td colspan = '4'>Localizar por:");
    out.println("<select name='campoapesquisar'>");
    if (campoapesquisar.equals("baicodigo")) {
        out.println("<option value='baicodigo' selected='selected'>Codigo</option>");
    } else {
        out.println("<option value='baicodigo'>Codigo</option>");
    }
    if (campoapesquisar.equals("baidescricao")) {
        out.println("<option value='baidescricao' selected='selected'>Descrição</option>");
    } else {
        out.println("<option value='baidescricao'>Descrição</option>");
    }
    out.println("</select>");
    out.println("<input type='text' name='pesquisa' value='" + pesquisa + "'/>");
    out.println("<input type='hidden' name='acao' value='listarBairro' />");
    out.println("<input type='image' src='imagens/localizar.png'/></tr></td>");
    out.println("</form>");
    out.println("<tr><td colspan = '2'><a href='bairrounico.jsp?acao=novo'><b>Novo</b></a></td><td colspan = '2'><b>Ordenado por:   " + ordenacao + "</b> </td></tr>");
    out.println("<tr class='linhaEspecialTabela'>");
    out.println("<td align='center'><a href='BairrosCRUD?campoapesquisar=" + campoapesquisar + "&pesquisa=" + pesquisa + "&acao=listarBairro&ordenacao=baicodigo&numpagina=" + Integer.parseInt(numPagina) + "'>Codigo</a></td><td align='center'><a href='BairrosCRUD?campoapesquisar=" + campoapesquisar + "&pesquisa=" + pesquisa + "&acao=listarBairro&ordenacao=baidescricao&numpagina=" + Integer.parseInt(numPagina) + "'>Descrição</a></td><td align='center'>Alterar</td><td align='center'>Excluir</td>");
    out.println("</tr>");

    for (java.util.Iterator iterator = listaDeBairros.iterator(); iterator.hasNext();) {
        br.com.jairo.modelo.Bairros bairros = (br.com.jairo.modelo.Bairros) iterator.next();
        out.println("<tr>");
        String baiCodigo = String.valueOf(bairros.getBaicodigo());
        String baiDescricao = bairros.getBaidescricao();
        //System.out.println(baiDescricao);
        out.println("<td>" + baiCodigo + "</td>");
        out.println("<td>" + baiDescricao + "</td>");
        out.println("<td><div align='center'><a href='bairrounico.jsp?acao=alterar&baicodigo=" + baiCodigo + "&baidescricao=" + baiDescricao + "'><img src='imagens/altera.png' alt='Altera'/></a></div></td>");
        out.println("<td align='center'><a href='BairrosCRUD?numpagina=" + Integer.parseInt(numPagina) + "&campoapesquisar=" + campoapesquisar + "&pesquisa=" + pesquisa + "&acao=excluir&baicodigo=" + baiCodigo + "'><img src='imagens/delete.png' alt='Altera'/></a></td>");
        out.println("</tr>");

    }

    String totalRegistros = (String) request.getAttribute("sessaoQtdTotalBairros");
    int totalPaginas = Integer.parseInt(totalRegistros) / limite;

    if (Integer.parseInt(totalRegistros) % limite != 0) {
        totalPaginas++;
    }
    out.println("<tr class='linhaEspecialTable'><td colspan='4'>Quantidade de Registros: " + totalRegistros + " Total de Paginas: " + totalPaginas + "<br>");
    out.println("</tr></td>");
    out.println("<tr class='linhaEspecialTable'><td colspan='4'>Pagina:");

    int pagAnterior;
    for (int i = 1; i <= totalPaginas; i++) {
        if (i == Integer.parseInt(numPagina)) {
            out.println("<b>" + numPagina + "</b>");
        }
    }

    int primeiraPagina;
    if (Integer.parseInt(numPagina) > 1) {
        primeiraPagina = 1;
        out.println("<a href=BairrosCRUD?campoapesquisar=" + campoapesquisar + "&pesquisa=" + pesquisa + "&ordenacao=" + ordenacao + "&acao=listarBairro&numpagina=" + primeiraPagina + ">Primeira</a>");
    }

    int paginaAnterior;
    if (Integer.parseInt(numPagina) > 1) {
        paginaAnterior = Integer.parseInt(numPagina) - 1;
        out.println("<a href=BairrosCRUD?campoapesquisar=" + campoapesquisar + "&pesquisa=" + pesquisa + "&ordenacao=" + ordenacao + "&acao=listarBairro&numpagina=" + paginaAnterior + "> Anterior </a>");
    }

    int proxPagina;
    if ((Integer.parseInt(totalRegistros) - (Integer.parseInt(numPagina)) * limite) > 0) {
        proxPagina = Integer.parseInt(numPagina) + 1;
        out.println("<a href=BairrosCRUD?campoapesquisar=" + campoapesquisar + "&pesquisa=" + pesquisa + "&ordenacao=" + ordenacao + "&acao=listarBairro&numpagina=" + proxPagina + "> Proxima </a>");
    }

    int ultimaPagina;
    ultimaPagina = totalPaginas;
    if (Integer.parseInt(totalRegistros) - (Integer.parseInt(numPagina) * limite) > 0) {
        out.println("<a href=BairrosCRUD?campoapesquisar=" + campoapesquisar + "&pesquisa=" + pesquisa + "&ordenacao=" + ordenacao + "&acao=listarBairro&numpagina=" + ultimaPagina + ">Ultima</a>");
    }
    out.println("</td></tr>");
    out.println("</table>");

Alguem pode me dizer onde estou errando, pois ainda não consegui localizar o erro.
Abaixo a imagem da tela exibindo as informações:

6 Respostas

javaflex

Maioria desse tipo de problema se resolve apenas debugando e inspecionado cada passo.

Veja que nesta linha você seta com o nome do campo ao invés de pegar o valor do resultset (rs.getString("nome do campo")):

bairros.setBaidescricao("baidescricao")
Jonathan_Medeiros
Solucao aceita

bairros.setBaidescricao(rs.getString("baidescricao"));

jairodione

Boa Tarde Jinathan_Medeiros!

Vou tentar amanhã a tarde, pois, já esquentei os miolos procurando este erro.
Se observar na linha acima fiz algo parecido, mas fiz porque tinha de transformar em Inteiro.

Jonathan_Medeiros

Este processo tem de ser feito para todos os resultados que deseja recuperar do ResultSet que sua query retorna, independente do tipo de dado!

jairodione

Bom dia e Feliz Ano Novo Jonathan_Medeiros!

Funcionou perfeitamente. Muito Obrigado!

jairodione

Bom Dia e Feliz Ano Novo javaflex!

Funcionou perfeitamente.Muito Obrigado!

Criado 31 de dezembro de 2020
Ultima resposta 1 de jan. de 2021
Respostas 6
Participantes 3