5
respostas

HTTP Status 400 – Bad Request, problema no Id na URL

Estou tendo essa resposta do servidor quando clico no link para o detalhe do produto:

HTTP Status 400 – Bad Request
Type Status Report

Description The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).

Apache Tomcat/7.0.99

Também percebi que a url chamada está estranha na parte do ID:

http://localhost:8080/casadocodigo/produtos/detalhe/%7B%C3%AEd%7D

Por que o Id esta ficando assim, %7B%C3%AEd%7D ?

Segue o codigo do jsp:

<%@ page language="java" contentType="text/html; UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://www.springframework.org/tags" prefix="s"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
    <p>${sucesso }</p>
    <table>

        <thead>
            <tr>
                <td>Título</td>
                <td>Descrição</td>
                <td>Páginas</td>
            </tr>
        </thead>
        <tbody>

            <c:forEach items="${produtos }" var="produto">

                <tr>
                    <td>
                        <a href="${s:mvcUrl('PC#detalhe').arg(0,produto.id).build()}">
                                ${produto.titulo} 
                        </a>
                    </td>
                    <td>${produto.descricao }</td>
                    <td>${produto.paginas }</td>
                </tr>

            </c:forEach>

        </tbody>

    </table>

</body>
</html>
5 respostas

Olá Pedro,boa noite!

Envie sua classe Controller também por favor...

Link para classe Controller no Github: https://github.com/pedroAndrad1/springMVC/blob/master/casadocodigo/src/main/java/br/com/casadocodigo/loja/controllers/ProdutosController.java Link para projeto no Github: https://github.com/pedroAndrad1/springMVC.git

Mas não acho que seja um problema no Controller, porque o erro que percebi foi na URL sendo envida para o Controller

Pedro, boa tarde!

No Seu GitHub não há a implementação do detalhe na classe Controller, DAO e na jsp conforme explicado no exercício.

Sugiro também apenas pra analisar o erro, exibir o ID do produtos em uma nova coluna na página jsp.

Opa, tinha esquecido de commitar. Desculpe-me por isso.

Aqui está a classe Controller: https://github.com/pedroAndrad1/springMVC/blob/master/casadocodigo/src/main/java/br/com/casadocodigo/loja/controllers/ProdutosController.java

Atualizei todo o resto também.

Testei a sua sugestão e os IDs aparecem normais. Creio que seja algum problema nesta tag:

<a href="${s:mvcUrl('PC#detalhe').arg(0,produto.id).build()}">
                                ${produto.titulo} 
                        </a>

Vê algo de errado?

Pedro,

O problema está em sua classe ProdutosController. Veja que no @RequestMapping o id está com acento "{îd}". Isto que está causando o erro.

De:

@RequestMapping("/detalhe/{îd}") 

Para:

@RequestMapping("/detalhe/{id}") 

Remova o acento, reinicie a aplicação que irá funcionar.

Abraços.