Comment fonctionne le paramètre de la méthode du contrôleur Spring MVC?
J'ai créé un Spring MVC projet à l'aide d'un modèle qui est créé à partir de la STS et c'est ce qui est généré dans le contrôleur:
@RequestMapping(value = "/", method = RequestMethod.GET)
public String home(Locale locale, Model model) {
//stuff
}
Ma question est, comment le locale
et model
variable se passait dans le home
méthode?
Aussi, quelles sont les options possibles pour les objets qui peuvent être transmis à la méthode?
source d'informationauteur ryanprayogo | 2011-12-04
Vous devez vous connecter pour publier un commentaire.
Manière générale, la réponse est "magie du Printemps"; cependant, "Prise en charge méthode de gestionnaire d'arguments et les types de retour" dans le MVC chapitre de Printemps du guide de référence de a exactement les réponses à vos questions.
La réponse technique est l'utilisation de spring mvc HandlerAdapter mécanisme.
Par la voie du printemps DispatcherServlet, un Gestionnaire d'adaptateur est créé et configuré pour chaque distribué demande.
Je pense que le "printemps de la magie" dans ce cas est le AnnotationMethodHandlerAdapter situé dans le spring mvc paquets. Cet adaptateur fondamentalement sera "mappé" à une requête HTTP basées sur des chemins d'accès HTTP, HTTP méthodes et les paramètres de la demande liée à la demande.
Donc essentiellement au printemps lorsque le répartiteur de la servlet identifie une demande auprès de chemin "/", il va vérifier pour des méthodes dans son conteneur annotées avec les RequestMapping annotation.
Dans votre cas, c'trouver...
Alors que la vraie magie commence...
À l'aide de java réflexion, le Printemps sera ensuite résoudre les arguments de votre méthode de contrôleur. Si dans votre cas, les paramètres Régionaux et le modèle sera automatiquement transmis à vous. Si vous avez inclus un autre web comme paramètre, comme HttpSession, qui sera transféré à vous.