Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

CRUD

Gostaria de auxilio para realizar um CRUD, o curso apresentou apenas ADICIONAR e LISTAGEM...

na verdade gostaria de auxilio para mandar um parametro da jsp para controller...

JSP:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<c:import url="/WEB-INF/jsp/_comum/header.jsp" />

    <main>
    <h2>Lista de Atletas</h2>
        <table class="table table-bordered">
            <tr>
                <td>Nome</td>
                <td>CPF</td>
                <td>RG</td>
                <td>Data Nascimento:</td>
                <td>Tipo Deficiencia</td>
                <td>Modalidade</td>
                <td>Deletar</td>
            </tr>

            <c:forEach items="${atleta}" var="atleta">
                <tr>
                    <td>${atleta.nome}</td>
                    <td>${atleta.cpf}</td>
                    <td>${atleta.rg}</td>
                    <td>${atleta.dataNascimento}</td>
                    <td>${atleta.tipoDeficiencia}</td>
                    <td>${atleta.modalidade}</td>
                    <td><a href="${atleta.id}">Excluir</a></td>
                </tr>
            </c:forEach>
        </table>
    </main>

<c:import url="/WEB-INF/jsp/_comum/footer.jsp" />

CONTROLLER:

@Controller
public class AtletaController {

    @Autowired
    private AtletaRepository atletaRepository;

    @Autowired
    private AtletaDAO atletaDao;

    @RequestMapping("formAtleta") // chama o formulario atleta
    public String form() {
        return "formAtleta";
    }

    @RequestMapping("cadastrarAtleta") // REALIZA O CADASTRO DOS ATLETAS
    public String form(Atleta atleta) {
        atletaRepository.save(atleta);
        return "redirect:formAtleta";
    }

    @RequestMapping("excluirAtleta") // METODO PARA EXCLUIR
    public String excluir(Integer id) {        
        Atleta atleta = atletaRepository.findById(id);
        atletaRepository.delete(atleta);
        return "redirect:listarAtletas";
    }

    @RequestMapping("listarAtletas") // LISTA OS ATLETAS
    public ModelAndView listaAtletas() {
        ModelAndView mv = new ModelAndView("listaAtletas");
        Iterable<Atleta> atletas = atletaRepository.findAll();
        mv.addObject("atleta", atletas);
        return mv;
    }

}
2 respostas
solução!

Oi Bruno,

Na verdade há um erro no seu link de excluir:

<a href="${atleta.id}">Excluir</a>

Desse jeito, quando usuário clicar no link, vai aparecer na barra de endereços do browser o ID do atleta que foi clicado, e não a URL que chama o método excluir do controller.

O id deve ir como um parametro da url, dessa maneira:

<a href="excluirAtleta?id=${atleta.id}">Excluir</a>

Repare que agora a URL que está no href é excluirAtleta, e depois dela vem um sinal de interrogação, que serve para levar parametros.

Veja se funciona no seu projeto.

Bons estudos!

Rodrigo Ferreira, isso mesmo realizei as alterações e peguei o parâmetro na controller... Muito obrigado, até a próxima.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software