Dans le cas de SpringMVC le conteneur va servir à créer:
-Le contexte de l’application Web
-Les objets traitant les requêtes (Controller)
-Les objets créant les pages HTML (View)
-Les objets données des formulaires (Command)
-Les liens avec les couches métiers et BD
-Et pleins d’autres
-Le mapping des URL vers les contrôleurs
-Le mapping des vues , etc.
Voici le shéma qui montre intervention de spring MVC dans la couche présenation de l'application
En effet spring mvc fonctionne par certains aspects de façon
similaire à Struts :
une servlet frontale va prendre l’ensemble des requêtes et les dispatcher à ses contrôleurs, ces contrôleurs sont des
singletons issus d’une fabrique Spring.
Le Controller
•La org.srinframework.web.servlet.DisatcherServlet est le point d’entrée
générique qui délègue les requêtes à des Controller.
•Un org.springframework.web.servlet.mvc.Controller prend en charge une requête,
et utilise la couche métier pour y répondre.
•Un Controller fabrique un modèle sous la forme d’une java.util.Map contenant les éléments de la
réponse.
•Un Controller choisit une org.springframework.web.servlet.View qui sera paramétrée par la Map pour
donner la page qui sera affichée.
web.xml
Le fichier web.xml va contenir :
- Une servlet pour dispatcher les requêtes aux contrôleurs.
- Un mapping de servlet
•On aboutit à ce fichier:
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD
Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd"
>
<web-app>
<display-name> Created Web Application</display-name>
on déclare la servlet frontale
<servlet>
<servlet-name>spring-mvc-webapp</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
Toutes les requêtes se
terminant par .html seront servis par la servlet frontal
<servlet-mapping>
<servlet-name>spring-mvc-webapp</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
</web-app>
Dans un
contexte Web avec Spring MVC, il faut comprendre qu'il y a en générale 2
contexte différents.
Le premier est créée par le ContextLoaderListener, et par défaut il va chercher un applicationContext.xml.Ce contexte est général à l'application et est chargé lors du démarrage de celle-ci.
Ensuite, tu as un contexte propre à la servlet, créé par la DispatcherServlet.
Si dans ton mapping celle-ci porte le nom maservlet, alors elle cherchera un fichier maservlet-servlet.xml
Il faut editer le fichier de configuration de spring:
/WEB-INF/ maservlet-servlet.xml
Dans ce fichier on doit déclarer ceci:
Voici la structure du projet springmvc:
Dans le fichier xml de configuration,on doit ajouter la déaclaration du controller HelloWorldController comme suit:
Nous allons ajouter une autre page pour afficher le résultat au lieux de PrintWriter
pour cela nous devons créer ModelAndView et lui passer le nom de model et sa valeur

Dans la page finale hello.jsp , on recupere la valuer envoye dans la variable txt.
No comments:
Post a Comment