2011-12-04 12 views
10

creé un proyecto Spring MVC usando una plantilla que se crea a partir de la STS y esto es lo que se genera en el controlador:¿Cómo funciona el parámetro del método de control Spring MVC?

@RequestMapping(value = "/", method = RequestMethod.GET) 
public String home(Locale locale, Model model) { 
    //stuff 
} 

Mi pregunta es, ¿cómo la variable locale y model van pasando en el home ¿método?

Además, ¿cuáles son las posibles opciones para los objetos que se pueden pasar al método?

Respuesta

7

La respuesta técnica es mediante el uso del mecanismo SpringMVC HandlerAdapter.

Por medio del DispatcherServlet de primavera, se crea y configura un adaptador Handler para cada solicitud enviada.

Creo que la "magia de la primavera" en este caso es el AnnotationMethodHandlerAdapter ubicado en los paquetes mvc de primavera. Este adaptador básicamente se "asignará" a una solicitud HTTP basada en rutas HTTP, métodos HTTP y parámetros de solicitud vinculados a la solicitud.

Esencialmente, cuando el servlet despachador de primavera identifica una solicitud con la ruta "/", comprobará los métodos en su contenedor anotado con la anotación RequestMapping.

En su caso, el hallazgo de que ...

Entonces comienza la verdadera magia ...

utilizando Java reflexión, primavera entonces resolver los argumentos de su método de controlador. Entonces, en su caso, la configuración regional y el modelo se le pasarán automáticamente. Si incluyó otro parámetro similar a la web, como HttpSession, se le pasará.

Cuestiones relacionadas