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

Não consigo acessar a página

Na segundo aula de spring-mvc-1 o professor explica como cadastrar um produto,
mas quando tento acessar a url, ele da o erro (HTTP Status 404 – Not Found
Type Status Report

Description The origin server did not find a current representation for the target resource or is not willing to disclose that one exists. )

E eu sei que o comando nem passa pelo método form() pois o System.out não 
é exibido. A única página que consigo acessar é a home.

Meu código:

imports*

public class ProductsController {

    @Autowired
    private DAOProduct daop;

    @RequestMapping("/cadastrar")
    public String form() {
    System.out.println("Acessando form")
        return  "products/form";
    }

    @RequestMapping("/produtos")
    public String record(Product product) {
        System.out.println(product);
        daop.gravar(product);
        return "products/sucesso";
    }
}

Eu criei a pasta products dentro de views e coloquei as jsp lá.
A minha classe WebAppConfiguration está idêntica ao do professor 
e minha jsp está assim:

<body>

    <form action="/CasadoCodigo/produtos" method="post">
        <div>
            <label>Title</label>
            <input type="text" name="titulo">            
        </div>
        <br>
        <div>
            <label>Description</label>
            <textarea rows="10" cols="30" name="desc"></textarea>
        </div>
        <br>
        <div>
            <label>Pages</label>
            <input type="text" name="paginas">
        </div>
        <br>
        <button type="submit">Register</button>
    </form>

</body>

O nome CasadoCodigo fui eu quem escolhi e eu adicionei css ao form.jsp
2 respostas
solução!

Olá!

Já tentou anotar a classe como "@Controller"?

Provavelmente, o que está ocorrendo é que o Spring não consegue fazer o componentScan da sua classe e acaba não encontrando os endpoints do @RequestMapping.

Também, não esqueça de verificar a estrutura dos seus pacotes. Todas as classes que serão gerenciadas pelo spring devem estar abaixo da classe main. Por exemplo:

Se sua main está no pacote 'br.com.exemplo', todas as suas classes devem estar abaixo dessa. No caso do seu controller, poderia ser algo como 'br.com.exemplo.controller'.

Sua classe poderia ser algo como:

@Controller
public class ProductsController {

    @Autowired
    private DAOProduct daop;

    @RequestMapping("/cadastrar")
    public String form() {
    System.out.println("Acessando form")
        return  "products/form";
    }

    @RequestMapping("/produtos")
    public String record(Product product) {
        System.out.println(product);
        daop.gravar(product);
        return "products/sucesso";
    }
}
Muito obrigado Douglas