4
respostas

Erro 404, pagina não encontrada

Olá, é estou com um problema que não consigo identificar eu sei que o erro 404 é pagina não encontrada, mas ja fiz de tudo olhei revisei, e tudo mais e mesmo assim a pagina esta dando erro 404, quando digito o url completa ex: http://localhost:8085/casadocodigo/produtos/form quando digito assim da o erro 404, quando eu digito assim http://localhost:8085/casadocodigo/produtos abre a pagina normal, então suponho que o erro é na pagina form mas não encontrei nada, então resolvi mandar para vocês verem o codigo do controller e da pagina form.jsp como fiz.

package br.com.casadocodigo.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import br.com.casadocodigo.dao.ProdutoDAO;
import br.com.casadocodigo.models.Produto;

@Controller
public class ProdutosController {

    @Autowired
    private ProdutoDAO produtoDao;

    @RequestMapping("/produtos/form")
    public String form() {
        System.out.println("testando");

        return "produtos/form";

    }

    @RequestMapping("/produtos")
    public String gravar(Produto produto) {
        System.out.println("Testando o produto");
        produtoDao.gravar(produto);

        return "produtos/ok";

    }

}

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Produtos</title>
</head>
<body>

       <form action="/casadocodigo/produtos" method="post">
          <div>
               <label>Titulo</label> <input type="text" name="titulo" />
          </div>

          <div>
               <label>Descrição</label>
               <textarea rows="10" cols="10" name="descricao"></textarea>
          </div>

          <div>
               <label>Paginas</label> <input type="text" name="paginas" />
                <button type="submit">Cadastrar </button>
          </div>
       </form>
</body>
</html>
4 respostas

Fala Fabiano, tudo bem ?

Quando voce chama /produtos/form aquele Sysout que está no método é executado ? Se sim, provavelmente o 404 se dá porque o tomcat não acha a página do form que deve ser respondida de acordo com a String ("produtos/form") retornada.

Dê uma olhada nisso. Pode ser que ele não esteja encontrando o caminho até sua jsp na hora de escrever o response.

Blz Rafael,

Então eu coloquei o sysout para saber se estava chegando até o metodo está chegando porque mostra a mensagem no console, mas depois dae estora e não mostra a pagina, como eu verifico o caminho ate o jsp na hora de escrever o response, como chego nesta conclusão.

Fabiano, O que acontece é que o java esta procurando por uma pagina form.jsp dentro de uma pasta "produtos", Precisa verificar se existe esse arquivo, lembrando que o java é case sensitive, então se o seu arquivo estiver escrito "Form.jsp" ele pode acabar não encontrando.

Fala Fabiano ..

Foi bem observado pelo Rafael .. Quando retornamos "produtos/form" estamos pedindo à DispatcherServlet pra despachar a requisição para a JSP, mais especificamente o arquivo form.js dentro da pasta produtos.

Provavelmente, sua configuração já tem uma definição da pasta padrão onde você coloca suas views -> imagino que /WEB-INF/views/. Sendo assim verifique se existe arquivo válido de acordo com o caminho /WEB-INF/views/produtos/form.js.

Abraços