Ainda não ficou claro pra mim quando usar o return "redirect:/home" ou quando fazer um return "home".
Ainda não ficou claro pra mim quando usar o return "redirect:/home" ou quando fazer um return "home".
Sem usar o redirect o html será gerado com base na requisição daquele método, e portanto depende dos atributos que foram adicionados ao Model naquele mesmo método.
Quando você usa o redirect é feita uma nova requisição que irá passar pelo método na classe HomeController, e portanto adicionará a lista de pedidos e caso seja aplicável a variável status (aguardando, entregue, aprovado).
No exemplo do curso, se o return "home" fosse usado fora do método que adiciona a lista de pedidos no HomeController, sua página inicial apareceria vazia, sem pedidos.
Para entender melhor, você pode criar essa classe no seu projeto:
@Controller
public class TesteController {
@GetMapping("testeSemRedirect")
public String testeSemRedirect() {
return "home";
}
@GetMapping("testeComRedirect")
public String testeComRedirect() {
return "redirect:home";
}
}
e testar as urls: