1
resposta

Quando usar o redirect?

Ainda não ficou claro pra mim quando usar o return "redirect:/home" ou quando fazer um return "home".

1 resposta

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:

http://localhost:8080/testeSemRedirect

http://localhost:8080/testeComRedirect