Вы находитесь на странице: 1из 4

MVC en Spring

Posted by afuentes under Java [13] Comments

En el siguiente apartado voy a detallar como esta implementado el patron Model-ViewController sobre Spring framework. Como la mayoria de los framework que implementan el patron MVC, Spring tiene implementado un servlet que realiza las tareas de Front Controller, esto significa que cada uno de los request que son realizados por el usuario, pasan a traves de este servlet. El nombre que recibe este servlet es Dispatcher Servlet. Y como indicamos anteriormente, todos los request que son realizados por los distintos usuarios pasan por este componente. Como la imagen lo indica el Request llegan al Dispatcher el cual tiene la responsabilidad de delegar a otro componente el procesamiento del request. Para obtener el nombre del componente que recibira el request , Spring utiliza lo que se denomina el Handler Mapping , el cual tiene la funcion de determinar cual sera el Controller que recibira el request. El Handler Mapping como indicamos tiene el objetivo de indicar al dispatcher cual sera el componente que debe recibir el request enviado por el usuario. Por lo cual el Dispatcher Servlet , le pregunta a uno o mas Handler Mapping cual sera le Controller que recivira el Request. Dentro del Spring existe varios Handler Mapping los cuales tiene distintas capacidades de poder mapear a los controladores.

En el siguiente cuadro se indican los Handler Mapping que posee Spring.

Handler Mapping BeanNameUrlHandlerMapping

Como mapea el Request Mapea controladores a URL basandose en el nombre del Bean Mapea controladores a URL

SimpleUrlHandlerMapping

basandose en una collecion de propiedades que se definen en el Spring application context.

ControllerClassNameHandlerMa pping CommonsPathMapHandlerMappi ng

Mapea controladores a URL utilizando el Controller Class Name Mapea controladores a URL usando metadatas en el codigo del controlador. Esta metadata es definida usando Jakarta Commons Atributes.

Luego de que el Handler Mapping le entrega nombre del Controller que se hara cargo del Request , el Distpacher Servlet le envia el request al Controller.Para poder implementar un Controller sobre Spring es necesario que se cree una clase que herede de los Controller que han sido implementados por Spring, los cuales dependiendo de la funcionalidad a realizar es el Controller que se debera utilizar. En el siguiente cuadro se puede ver que tipos de Controller estan disponibles sobre Spring. Controller type Classes Usarlo cuando ... Para cuando un ParameterizableViewContr View oller UrlFilenameViewController controlador solo necesita desplegar informacion Para Simple Controller (interface) AbstractController controladores simples que solo se utilizan como Simples Servlet Para manejar los Throwaway ThrowawayController request como un Commando Multiaction MultiActionController Para implementar una serie de acciones con similar logica Command BaseCommandController AbstractCommandControlle r Si tus controladores reciben parametros estos son manejados dentro de un objeto Form AbstractFormController SimpleFormController Para desplegar y procesar un

formulario, bajo el mismo componente Wizard AbstractWizardFormControl Para realizar una ler interaccion mas rica con el usuario a traves de varias pantallas

Luego que el Controller recibe el Request , se construye un Objeto que se denomina ModelAndView ,este componente tiene como funcion la de : 1- Entregar un nombre logica a la vista que debera realizar el despliegue del Model 2- Entregar un nombre logico al Model que esta asociado a este componente 3- Inyectar el objeto Model el cual tiene los datos que seran desplegados en la Vista. Luego que el objeto ModelAndView es regresado al dispatcher y este componente delega la responsabilidad de la mapping del nombre logico de la vista, con el componente a utilizar al ViewResolver.El ViewResolver es el encargado de realizar el mapping entre el nombre logico de la vista y el componente. En el siguiente cuadro se indican los ViewResolver disponibles a ser configurados sobre Spring. View Resolver Como trabaja .... Resuelve el nombre logico InternalResourceViewResolver utilizando el mapping a velocity y JSP Resuleve el nombre logico BeanNameViewResolver utilizando Bean definidos en el Spring Context ResourceBundleViewResolver Define el mapping entre los nombres logicos y las vistas asociadas , definiendolo en un archivo de propiedades XmlViewResolver Define el mapping entre los nombres logicos y las vistas asociadas , definiendolo en un archivo XML

Luego que las vista realiza el procesamiento , el dispatcher envia el request de retorno al usuario. Para todos aquellos que solo conocian Struts , los invito a interiorizarse un poco mas

sobre springframework. Es importante sealar que el MVC es solo un modulo dentro del framework de Spring.

Content Alex Fuentes [CL]

Вам также может понравиться