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

Por que desta forma não consigo mapear??

Ola Turma alguém pode ajudar?? Fiz algo diferente, vindo de um livro, o problema que os dados são retornado no HTML, mas não aparece no meu listaconvidados.html no formatado igual a aula. Ele vem como Json , sendo que era para vir formatodo por causa do (Model model) lá na pagina listaconvidados.html usando thymeleaf ?? Olha como está sendo retornado

[{"id":1,"nome":"Antonio filho","email":"filho@mail.com","telefone":"918203784"}]

package pt.listavip.listavip.controller;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import pt.listavip.listavip.model.ListaConvidados;
import pt.listavip.listavip.repository.ListaConvidadosRepository;

@Controller
public class ListaConvidadosController {

    @Autowired
    private ListaConvidadosRepository repository;


    @RequestMapping("/")
    public String index () {

        return "index";
    }

    @RequestMapping("listaconvidados")
    public  ResponseEntity<List<ListaConvidados>>  listaAll(Model model) {
        List<ListaConvidados> listaconvidado = repository.findAll();
        if(listaconvidado.isEmpty()) {
             return new ResponseEntity<>(HttpStatus.BAD_REQUEST);
        }else {
            model.addAttribute("listaconvidados",listaconvidado);
            return new ResponseEntity<List<ListaConvidados>>(listaconvidado, HttpStatus.ACCEPTED);
        }        
    }




}
2 respostas
solução!

Olá Antonio, tudo bem com você?

Dado que você quer retornar dados para a sua página HTML, não iremos utilizar o ResponseEntity ( utilizamos ele quando estamos querendo trabalhar com API's e retornar dados para o usuário em formato JSON, dessa maneira conseguímos mandar os status da operação)

Da maneira como você fez, recebendo um model e adicionando um atributo nele, você pode mudar o retorno para uma String e passar o caminho :)

Exemplo:

    @RequestMapping("listaconvidados")
    public  String listaAll(Model model) {
        List<ListaConvidados> listaconvidado = repository.findAll();
    model.addAttribute("listaconvidados",listaconvidado);

    return "lista";
    }

Dessa maneira iremos renderizar a página html chamada lista.html com os dados que foram atribuídos com o model :)

Abraços e Bons Estudos!

Geovani bom dia, tinha desconfiado disto, e refiz o cod. igual ao da alura, mas deixei a pergunta para aprender, obrigado pela explicação. O problema é que fiz curso de Spring API REST e Spring VMC, isto neste momento está tudo misturado!! LOL Mas agora já aprendi mais algo.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software