Erro de Exclusão com JSP e Servlets

11 respostas Resolvido
html5java
A

Pessoal estou iniciando com JSP e Servlets e to criando algo muito muito simples de crud, porem estou com um problema ao excluir um registro que esta em uma tabela, onde tenho um botão para cada linha da minha <table> quero pegar o id e conseguir excluir apenas clicando no botao ao lado como na imagem abaixo porem nao consigo… como fariam? quem poder ajudar agradeço desde já…

11 Respostas

danielbussade

Olá,

Creio eu que você já tem o ID sendo exibido no campo código. Então é so montar o link. Por exemplo:

<a href="suaActionParaExcluir?id= ${objeto.id}">Excluir </a>

A

desculpa mas nao entendi o codigo iniciando os estudos agora e to meio perdido pode explicar com mais detalhes?

igomes

Quando vc fizer o foreach por ex, já coloca o id na linha como nosso amigo disse.

A

certo mas quero so pegar o id correto pra cada linha ao clicar no botao entendeu? onde ja uso do while pra listar tudo na tabela

A

segue o codigo

<table class="table-of-contents bordered striped responsive-table centered hoverable" id="tabela">
            <thead>
                <tr>
                    <th>Código</th>
                    <th>Nome</th>
                    <th>Idade</th>
                    <th>Sexo</th>
                    <th>Opção</th>           

                </tr>
            </thead>

            <%
                Conecta_BD conecta = new Conecta_BD();
                Connection conn;

                conn = conecta.Conexao("plugados");
                conecta.executaSql("select * from aluno order by nome");
                conecta.resultSet.first();

                do {
                    
                    out.println("<tr>");

                    out.println("<td>" + conecta.resultSet.getInt("id_aluno") + "</td>");
                    out.println("<td>" + conecta.resultSet.getString("nome") + "</td>");
                    out.println("<td>" + conecta.resultSet.getString("idade") + "</td>");
                    out.println("<td>" + conecta.resultSet.getString("sexo") + "</td>");

                    out.println("<td><a class='btn btn-large waves-effect red white-text' type='submit'>Excluir</a></td>");

                    out.println("</tr>");

                } while (conecta.resultSet.next());

            %>

        </table>`

ai tentei colocar um id dentro da td pra pegar a linha mas n deu

danielbussade
Solucao aceita

out.println("<td><a class='btn btn-large waves-effect red white-text' href= 'actionParaExcluir?id="+ conecta.resultSet.getInt("id_aluno") + " type='submit'>Excluir</a></td>");

danielbussade

Alan, aproveite que você está começando agora e estude JSP e JSTL para separar a camada de lógica da apresentação.

Todo esse seu código de manipulação de SQL deveria estar em uma classe Java que iria disponibilizar o objeto para a view(JSP) onde você usaria JSTL com as taglibs para exibir. O código ficaria muito mais limpo e fácil de manter.

Dá uma olhada na apostila FJ-21 da Caelum que é um excelente material.

Att

A

muito obg @danielbussade ta ajudando bastante cara, cara ainda n deu certo cara to jogando pra uma servlet ao clicar no botao la tenho meu sql de delete porem como faço pra passar o mesmo id na servlet pra deletar certinho? segue como ficou meu botao

out.println("<td><a class='btn btn-large waves-effect red white-text' href= './DeletaAluno' id=" + conecta.resultSet.getInt("id_aluno") + " type='submit'>Excluir</a></td>");

A

ai na minha servlet tenho o segundo codigo pra deletar porem nao consigo pegar o id e jogar nesse codigo pra deletar…

` try {
conn = conexao.Conexao(“plugados”);//ESTABELECENDO A CONEXAO

if (conn != null) {//SE EXISTIR A CONEXAO ENTAO FAZ O DELETE
            
            PreparedStatement pst = conn.prepareStatement("delete from aluno where id_aluno=?");

            pst.setInt(1, conexao.resultSet.getInt("id_aluno"));

            pst.execute();

            response.sendRedirect("excluirAluno.jsp");//REDIRECIONA PARA A PAGINA 

        }
    } catch (Exception ex) {
        System.out.println("Erro ao inserir" + ex);
    }

`

danielbussade

Então Alan,

Na sua Servlet imagino que você tenha reescrito alguns dos método doGet, doPost ou service. Nesses métodos tem como parâmetros o HttpServletRequest e HttpServletResponse. Então basta pegar os parâmetros que estão foram colocados no HttpServletRequest com o nome que foi passado na url.

Por, exemplo você acessou a URL actionExcluir?id=1, desta forma você recuperaria o id com o seguinte código:

Long id = request.getParamater("id");

Att

A

@danielbussade ja estava fazendo assim e dava erro agora descobri que so faltava fechar a aspa simples kkk mas muito obg pela ajuda e tbm pelo conteúdo sugerido pra estudo é muito bom :smile: qualquer pergunto aqui hehe

Criado 23 de setembro de 2016
Ultima resposta 26 de set. de 2016
Respostas 11
Participantes 3