3
respostas

Removendo produtos usando o método DELETE

Boa noite

Criei um método para remover produto e ao clicar no link de remover apresenta a mensagem de erro:

HTTP Status 405 - Request method 'GET' not supported

Tenho aqui um fragmento do codigo da lista de produto:

                 <a href="<c:url value='produtos/remover/${produtos[status.index].id}' />" >
                    <img alt="Remover" src="<c:url value='/resources/icon/ic_delete_black_24dp_1x.png' />">
                </a>

E no produto controller:

        @RequestMapping(value="remover/{id}", method=RequestMethod.DELETE)
        public String remover(@PathVariable("id")int id) {
            produtoDao.delete(id);
            return "redirect:/produtos";
        }

Se eu tiver usando o método remover como GET tudo funciona:

method=RequestMethod.GET)

Tem como mandar da página JSP um request para remover um produto usando o método DELETE ?

3 respostas

Fala ai Renato, tudo bem?

Tem sim, você vai precisar faze um pouquinho diferente, vai precisar fazer isso ser um form para conseguir definir qual é o método http que deseja usar.

Boa noite Matheus, tudo bem e você ?

Então, fiz dessa forma e não deu certo :/

<c:forEach items="${produtos}" var="produto" varStatus="status">
        <tbody>
        <tr>
            <td>${produto.titulo}</td>
            <td>${produto.descricao}</td>
            <td>${produto.paginas}</td>
            <td>
            <fmt:formatDate pattern="dd/MM/yyyy" value="${produto.dataLancamento.time}" />
            </td>
            <td>
                <a href="<c:url value='produtos/editar/${produto.id}' />" >
                    <input type="hidden" name="${produtos[status.index].id}" value="<c:url value='produtos/editar/${produtos[status.index].titulo}' />">
                    <img alt="Editar" src="<c:url value='/resources/icon/ic_mode_edit_black_24dp_1x.png' />">
                </a>
                <form:form action="${s:mvcUrl('PC#remover').build()}" method="DELETE">
                 <a href="<c:url value='produtos/remover/${produtos[status.index].id}' />" >
                    <img alt="Remover" src="<c:url value='/resources/icon/ic_delete_black_24dp_1x.png' />">
                </a>
                </form:form>
            </td>
        </tbody>
        </c:forEach>

E deu o mesmo erro:

HTTP Status 405 - Request method 'GET' not supported

Ai você não vai ter um <a href> nesse caso um botão se torna melhor.