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á…
Erro de Exclusão com JSP e Servlets
11 Respostas
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>
desculpa mas nao entendi o codigo iniciando os estudos agora e to meio perdido pode explicar com mais detalhes?
Quando vc fizer o foreach por ex, já coloca o id na linha como nosso amigo disse.
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
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
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>");
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
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>");
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);
}
`
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
@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
qualquer pergunto aqui hehe
