Enviar datos a la Vista

Interface Model

La mas simple y el mas usado para enviar datos a la vista

@Controller
public class HomeController {
    @GetMapping({"/","home", "index"})
    public String home(Model model){
        String mensaje = "Mensaje desde Controlador";
        model.addAttribute("mensaje", mensaje);
        return "index";
    }
}

Recuperar en la Vista

Para recuperar datos en la Vista usaremos las directivas de Thymeleaf.

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>My Web</title>
</head>
<body>
    <h1>Pagina de Inicio</h1>
    <p th:text="${mensaje}"></p>
</body>
</html>

Clase ModelMap

Es similar a Model, dicho no hay mucha diferencia.

@Controller
public class HomeController {
    @GetMapping({"/","/home", "/index"})
    public String home(ModelMap model) {
        String mensaje = "Mensaje desde Controlador con Model";
        model.addAttribute("mensaje",mensaje);
        return "index";
    }
}

Map

Como los datos se enviar con clave y valor entonces podemos usar la collección Map de Java.

@Controller
public class HomeController {
    @GetMapping({"/","/home", "/index"})
    public String home(Map<String, Object> map) {
        String mensaje = "Mensaje desde Controlador con Model";
        map.put("mensaje",mensaje);
        return "index";
    }
}

Clase ModelAndView

También se puede usar esta clase para enviar datos a la Vista.

@Controller
public class HomeController {
    @GetMapping({ "/", "/home", "/index" })
    public ModelAndView index(ModelAndView mav) {
        String mensaje = "Mensaje desde Controlador";
        mav.addObject("mensaje", mensaje);
        mav.setViewName("index");
        return mav;
    }
}