Bom dia, eu estou com uma lista em JSTL que exibe dados do banco na minha página. Ao lado de cada item da lista tem um botão e eu gostaria que ao clicar nele, o item fosse deletado. Porém não é o que está acontecendo, a página está executando o método dentro do botão mesmo sem clicar nele, ao apertar F5 ele simplesmente apaga todos os dados do banco.
Método da classe DAO:
public void deletar(int id){
String sql = “delete from colaborador where id=?”;
try{
PreparedStatement stmt = connection.prepareStatement(sql);
stmt.setInt(1, id);
stmt.execute();
stmt.close();
}catch(SQLException e){
throw new RuntimeException(e);
}
}
Lista JSTL:
<c:forEach var=“colaborador” items="${daocolaborador.pesquisar()}">
tr>
td style="width: 25%">${colaborador.id}</td
td style="width: 25%">${colaborador.nome}</td
td style="width: 25%">${colaborador.local}</td
td style="width: 25%">
button class="btn btn-warning" style="background-color:orange;color:white" type="submit" onClick="${daocolaborador.deletar(colaborador.id)}">Deletar</button
button class="btn btn-warning" style="background-color:orange;color:white" type="submit" onClick="">Alterar</button
</td
/tr>
</c:forEach>
Alguém sabe me dizer porque dele deletar mesmo sem eu estar clicando no botão? Agradeço desde já.