Title: D
1 - Développement dune application avec Spring/MVC
- M. Amiour, Alciongroup
- 29/11/2006
2Plan
- Spring cest quoi?
- Larchitecture Spring MVC
- Concevoir et développer une application Spring
MVC - Conclusion
- Démo/Atelier
3Spring MVC cest quoi?
- Composant du framework Spring
- Dédié à la couche présentation
- au même titre que Struts
- Spring
- Framework Open Source
- Aborde toutes les couches
- Présentation
- Métier
- Accès aux données
4Spring MVC cest quoi?
- Spring
- Indépendance inter-couche
- Spring IOC Inversion Of Control
- LIOC peut être introduit dans toutes les couches
- Intégration des frameworks existants
- Struts, Hibernate
- Version actuelle 2.0
5Architecture Spring MVC
Spring config.xml
Web.xml
Utilisateur (Navigateur Web)
M ê T I E r
D A O
Dispatcher Servlet
(1)
(2)
BD
Contrôleur
(3)
(4)
(5)
Modèle
Vue
(6)
(7)
6Architecture Spring MVC
Utilisateur ( Navigateur Web)
E J B 3
D A O
nom_servletgt-servlet.xml
Web.xml
Dispatcher Servlet
(1)
(2)
BD
AfficheList Conroller
(3)
(5)
(4)
List.jsp
Map (Liste Etudiant)
(6)
(7)
7Architecture Spring MVC
- DispatcherServlet
- Transmet la requête au contrôleur approprié
- Mapping défini dans un fichier XML
- Fournie par le Framework Spring
org.springframework.web.servlet.DispatcherServlet - A déclarér dans web.xml
8Architecture Spring MVC
- Contrôleur
- Traite une action particulière Affichage de la
liste des étudiants - Hérite de org.springframework.web.servlet.mvc.
Controller - Implémenter
- ModelAndView handleRequest(HttpServletRequest
request, HttpServletResponse response)
9Architecture Spring MVC
- Contrôleur
- Communique avec la couche métier
- Construit le modèle
- Modèle MAP Java
- List etudListetudManager.findAll()
- Map modelnew HashMap()
- model.put("etudiants",etudList)
10Architecture Spring MVC
- Le contrôleur
- Choisit la vue à envoyer
- Résolution de la vue
- Envoie la vue et le modèle au client
- return new ModelAndView("vue_liste_etudiants ,
model)
11Architecture Spring MVC
- La vue
- Page JSP
- Balises JSTL
12Architecture Spring/MVC
- lt_at_page contentType"text/html"gt
- lt_at_page pageEncoding"UTF-8"gt
- lt--
- lt_at_taglib uri"http//java.sun.com/jsp/jstl/core"
prefix"c"gt - lt!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN" - "http//www.w3.org/TR/html4/loose.dtd"gt
- lthtmlgt
- ltheadgt
- ltmeta http-equiv"Content-Type"
content"text/html charsetUTF-8"gt - lttitlegtListe des étudiantslt/titlegt
- lt/headgt
- ltbodygt
-
- ..
-
- ltcforEach var"entry" items"etudiants" gt
- lttrgt
- lttdgtentry.numerolt/tdgt
- lttdgtentry.nomlt/tdgt
- lttdgtentry.prenomlt/tdgt
- lttdgtentry.adresselt/tdgt
- lttdgtentry.agelt/tdgt
- lt/trgt
- lt/cforEachgt
- lt/tablegt
- lt/bodygt
- lt/htmlgt
13Architecture Spring MVC
WEB-INF
Web.xml ltnom_servletgt-servlet.xml applicationConte
xt.xml
14Architecture Spring MVC
ltweb-appgt .. ltservletgt ltservlet-namegt
gestion_etudiants_spring
lt/servlet-namegt ltservlet-classgt
org.springframework.web.servlet.DispatcherServ
let lt/servlet-classgt lt/servletgt lt/web-appgt
15Architecture Spring MVC
- Configuration ltxxxgt-servlet.xml
lt?xml version"1.0" encoding"UTF-8"?gt lt!DOCTYPE
beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http//www.springframework.org/dtd/spring-beans.d
td"gt ltbeansgt lt!-- Mapping URLs / controleur --gt
ltbean id"urlMapping" class "org.springframework
.web.servlet.handler.SimpleUrlHandlerMapping"gt
ltproperty name"mappings"gt
ltpropsgt ltprop key"/afficher_liste_etud.html"gtAffi
cherEtudiantControllerlt/propgt
lt/propsgt lt/propertygt lt/beangt
16Architecture Spring MVC
- Configuration ltxxxgt-servlet.xml
lt!-- Déclaration des contrôleurs de
l'application --gt lt!-- Contrôleur de
la vue liste des etudiants. Il s'agit de la
classe AfficherEtudiantControlle qui se trouve
dans le package etudiant --gt ltbean id
"AfficherEtudiantController" class"etudiant.Affi
cherEtudiantController"gt lt/beangt
17Architecture Spring MVC
- Configuration ltxxxgt-servlet.xml
lt!Choisir une stratégie de résolution de vue
Dire à Spring comment trouver les vues 4
stratégies de résolution possible -
InternalResourceViewResolver -
BeanNameViewResolver - XMLViewResolver
- ResourceBundleViewResolver --gt lt!-- Pour
notre exemple on choisit BeanNameViewResolver
ltbean class"org.springframework.web.servlet.vi
ew.BeanNameViewResolver" /gt
18Architecture Spring MVC
- Configuration ltxxxgt-servlet.xml
lt!-- Declaration des vues --gt ltbean
id"vue_liste_etudiants" class"org.springframewor
k.web.servlet.view.JstlView"gt
ltproperty name"url"gt
ltvaluegt/WEB-INF/vues/liste_etudiants.jsplt/valuegt
lt/propertygt
19Conclusion
- Bien documenté
- Facile à maîtriser
- Le développement de la couche présentation est
(vraiment) simple - On a pas besoin de form beans (struts)
- ? Moins de classes à développer
- Possibilité dutiliser lIOC
20Conclusion
- Comment ça marche la validation des données
utilisateurs? - Est il possible deffectuer la validation coté
client (comme dans Struts)? -
21Conclusion
- La suite?
- Développement dune application en Spring IOC
-