Mvc en Spring

download Mvc en Spring

of 4

Transcript of Mvc en Spring

  • 8/3/2019 Mvc en Spring

    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-View-

    Controller 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 Como mapea el Request

    BeanNameUrlHandlerMappingMapea controladores a URL

    basandose en el nombre del Bean

    SimpleUrlHandlerMapping

    Mapea controladores a URL

    basandose en una collecion de

    propiedades que se definen en el

    Spring application context.

    http://www.jroller.com/page/afuentes/?anchor=mvc_en_springhttp://www.jroller.com/comments/afuentes?anchor=mvc_en_springhttp://www.jroller.com/page/afuentes/?anchor=mvc_en_springhttp://www.jroller.com/comments/afuentes?anchor=mvc_en_spring
  • 8/3/2019 Mvc en Spring

    2/4

    ControllerClassNameHandlerMa

    pping

    Mapea controladores a URL

    utilizando el Controller Class

    Name

    CommonsPathMapHandlerMappi

    ng

    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 ...

    View

    ParameterizableViewContr

    oller

    UrlFilenameViewController

    Para cuando un

    controlador solo

    necesita

    desplegar

    informacion

    SimpleController (interface)

    AbstractController

    Para

    controladores

    simples que solo

    se utilizan como

    Simples Servlet

    Throwaway ThrowawayController

    Para manejar los

    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 AbstractFormControllerSimpleFormController

    Para desplegar yprocesar un

  • 8/3/2019 Mvc en Spring

    3/4

    formulario, bajo el

    mismo

    componente

    Wizard AbstractWizardFormControl

    ler

    Para realizar una

    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 Model2- 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 ....

    InternalResourceViewResolver

    Resuelve el nombre logico

    utilizando el mapping a velocity

    y JSP

    BeanNameViewResolver

    Resuleve el nombre logico

    utilizando Bean definidos en el

    Spring Context

    ResourceBundleViewResolver Define el mapping entre los

    nombres logicos y las vistasasociadas , 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 alusuario. Para todos aquellos que solo conocian Struts , los invito a interiorizarse un poco mas

  • 8/3/2019 Mvc en Spring

    4/4