L'objectif de cet article est de présenter le principe de fonctionnement de spring MVC ainsi que les bases de ce framework.
Principe de fonctionnement
Spring MVC est un framwork qui permet d’implémenter des applications selon le design pattern MVC. Donc, comme tous autre MVC framework, Spring MVC se base sur le principe décrit par le schéma ci-dessous :
Passant maintenant aux détails : ci-dessous la cinématique de la gestion d’une requête par Spring MVC.
Les étapes sont :
1. Le DispatcherServlet reçoit une requête dont l’URI-pattern est '/myPage.html'.
2. Le DispatcherServlet consulte son Handler Mapping (Exemple : BeanNameUrlHandlerMapping) pour connaître le contrôleur dont le nom de bean est '/myPage.html'.
3. Le DispatcherServlet dispatche la requête au contrôleur identifié (Exemple : MyController)
4. Le contrôleur retourne au DispatcherServlet un objet de type ModelandView possédant comme paramètre au minimum le nom logique de la vue à renvoyer.
5. Le DispatcherServlet consulte son View Resolver lui permettant de trouver la vue dont le nom logique est 'myPage'. Ici le type de View Resolver choisit est InternalResourceViewResolver.
6. Le DispatcherServlet forwarde la requête à la vue associé . Ici la page /WEB-INF/jsp/ myPage.jsp
A NOTER : Pour les fans de struts, la servlet DispatcherServlet de Spring est l’équivalent du controlleur ActionServlet de Struts.
DispatcherServlet
C’est le point d’entrée de l’application, le DispatcherServlet effectue le premier mapping de l’application et distribue les requêtes aux servlets correspondantes.
Exemple : Admettant qu’on a cette configuration dans le web.xml :
Avec cette configuration, toutes les urls de notre application commençant par myApplication seront « dispatchées » vers cette servlet.
Controller
Le contrôleur (le C dans le modèle MVC) permet d’intercepter la requête et retourner la vue appropriée.
Spring MVC offre plusieurs types de contrôleurs : AbstractController, AbstractController, AbstractCommandController, AbstractFormController, SimpleFormController, AbstractWizardFormController…
L’interface ‘Controller’ définit le comportement basique d’un contrôleur : intercepter la requête et retourner un ‘ModelVue’ qui représente le modèle et la vue.
MultiActionController : un contrôleur dont les méthodes seront lancées en fonction des urls d’entrées.
Handler Mappings
Permet de mapper les requêtes HTTP avec le contrôleur correspondant.
View Resolvers
Permet de déterminer le nom de la vue.
Exmple : Revenons à notre exemple ci-dessous décrivant la cinématique de la gestion d’une requête par Spring MVC, pour déterminer le nom la page jsp qui correspond au url /myPage nous devons ajouter dans le fichier la configuration ci-dessous :
Le handler de notre contrôler doit retourner un objet de type ModelAndView, celui-ci est déclaré de la manière suivante :
return
new
ModelAndView("myPage″) ;
À partir du nom de vue retourné, myPage par exemple, le viewResolver trouvera la page jsp correspondante qui sera dans le dossier “/WEB-INF/jsp/ » avec le suffixe « .jsp »
Conclusion
Dans cet article nous avons vu le principe de fonctionnement de spring MVC ainsi que les principaux composants. Dans l'article prochain nous allons implémenter notre première application avec spring MVC.
Aucun commentaire:
Enregistrer un commentaire