Spring Framerowk se adhiere el paradigma de programación Modelo-Vista-Controlador (MVC) para el desarrollo de sus proyectos.
Cuando se crea una aplicacion Java SE web todo se hace en torno a un Servlet central, que es el encargado de seleccionar que controlador se encarga de cada respuesta, y dentro de cada uno de estos controladores se realizan las tareas necesarias para servirla.
Cuando se crea una aplicacion Java SE web todo se hace en torno a un Servlet central, que es el encargado de seleccionar que controlador se encarga de cada respuesta, y dentro de cada uno de estos controladores se realizan las tareas necesarias para servirla.
Spring Framework nos provee para desempeñar la tarea de Servlet central de DispatcherServlet,
lo que hace especial a este Servlet, es que aparte de desempeñar las
tareas de comunes de despachador, tiene una completa integración con
Spring IoC.
Tal y como podemos ver en la imagen anterior, DispatcherServlet
realiza las tareas de Controlador Frontal, delega en el Controlador de
cada llamada las operaciones internas requeridas para realizar la
respuesta y una vez que este le devuelve la información necesaria para
emitir dicha respuesta DispatcherServlet delega en un ViewResolver el renderizado de la respuesta.
Típicamente esta acción se realizada con
la clase ModelAndView, en dicha clase el Controlador cargaba los datos y
el nombre de la vista para que esta fuera renderizada.
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { MapCon la aparición de los Controladores por anotaciones (@Controller), esta operación ha variado significativamente, utilizandose la clase Model a través del Controlador para registrar los datos que serán utilizados por la vista, la cual es devuelta en el retorno del método del controlador.myModel= new HashMap (); miModelo.put("integer_value", 500); miModelo.put("string_value", "cadena aleatoria"); ModelAndView miMAV = new ModelAndView(); miMAV.setViewName("my_currently_view"); miMAV.addObject(myModel); return miMAV; }
No hay comentarios:
Publicar un comentario