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

[Dúvida] Whitelabel Error Page - There was an unexpected error (type=Not Found, status=404).

Bom dia, alguém pode me ajudar por favor? Já refiz o código algumas vezes, mas não está abrindo o formulário no navegador. Já reinciei a aplicação com o "stop" do intellij, mas ainda assim não funciona e às vezes, retorna o erro de número "500" no lugar do 404. Vou deixar aqui um print de como está organizado meu código e também os códigos de cada classe. Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidade**Filme Controller: **

package controller;

import model.DadosCadastroFilme;
import model.Filme;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;

import java.util.ArrayList;
import java.util.List;

@Controller
@RequestMapping("/filmes")
public class FilmeController {

    private List<Filme> listaDeFilmes = new ArrayList<>();

    @GetMapping
    public String carregaPaginaFormulario(){
        return "filmes/formulario";
    }

    @PostMapping
    public String cadastraFilme(DadosCadastroFilme dados){
        var filme = new Filme(dados);

        listaDeFilmes.add(filme);

        System.out.println(listaDeFilmes);

        return "filmes/formulario";

    }
}

**Record: **

package model;

public record DadosCadastroFilme(String nome, Integer duracao, Integer anoDeLancamento, String genero) {
}

**Filme **

package model;

public class Filme {

    public Filme(DadosCadastroFilme dados){
        this.nome = dados.nome();
        this.duracao = dados.duracao();
        this.anoDeLancamento = dados.anoDeLancamento();
        this.genero = dados.genero();
    }

    public String getNome() {
        return nome;
    }

    public Integer getDuracao() {
        return duracao;
    }

    public Integer getAnoDeLancamento() {
        return anoDeLancamento;
    }

    public String getGenero() {
        return genero;
    }

    private String nome;
    private Integer duracao;
    private Integer anoDeLancamento;
    private String genero;

    @Override
    public String toString() {
        return "Filme{" +
                "nome='" + nome + '\'' +
                ", duracao=" + duracao +
                ", anoDeLancamento=" + anoDeLancamento +
                ", genero='" + genero + '\'' +
                '}';
    }
}

Formulário

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Cadastro de Filme</title>
</head>

<body>
<h1>Cadastre um novo filme: </h1>

<form method="post">
    <label for="nome">Nome: </label>
    <input name="nome" id="nome">

    <br>

    <label for="duracao">Duração: </label>
    <input name="duracao" id="duracao">

    <br>

    <label for="ano">Ano de Lançamento: </label>
    <input name="ano" id="ano">

    <br>

    <label for="genero">Gênero: </label>
    <input name="genero" id="genero">

    <br>

    <input type="submit" value="Cadatrar">
</form>
</body>
</html>
2 respostas
solução!

Oi!

O problema do seu projeto é em relação aos pacotes.

Você criou um pacote chamado br.com.teste.movie e dentro dele está a classe main do projeto (MovieApplication). O Spring então somente vai carregar as classes que estiverem dentro desse pacote ou em algum subpacote dele.

Mas as suas outras classes estão em outros pacotes que estão fora desse pacote principal.

Seus pacotes deveriam estar assim:

  • br.com.teste.movie
  • br.com.teste.movie.model
  • br.com.teste.movie.controller

Muito obrigada professor, deu tudo certo :)