SlideShare ist ein Scribd-Unternehmen logo
1 von 20
Technologie Web
       Struts 2




  Le 3 Décembre 2010
Plan




 1. Struts 2
   2. Exercice
Présentation
• Architecture simple
• Facile à apprendre
• Architecture MVC
• Possède beaucoup de composants
MVC
Cycle de vie
Action / Interceptor / Result
Les Actions
• Doivent étendre de ActionSupport
• Contiennent les données du model
• Sont mappées sur les URLS
• Se configurent dans le fichier struts.xml
  • Exemple
<package name="monPackage" extends="struts-default">
<action name=“ uri“ class=“ class“ method=“ method">
 <result name=” success” >destination.jsp</result>
</action>
<package>
Wildcard Mapping
<package name="exemple" extends="struts-default">
  <action name=“ contact_*" class=“ fr.ima.uco.ContactAction"
method=“ {1} ">
     <result>/contact/{1}.jsp</result>
  </action>
<package>


http://localhost:8080/exemple/contact_list.action
La classe Action
public class ContactAction extends ActionSupport {
    private Contact contact;
    private ContactService service;


    public String delete(){ … }
    public String update(){…}
    // GETTER & SETTER
}
La validation
• Form
<s:textfield key="age"/>

• Action
private int age; get/set

• Validator <ActionClassName>-validation.xml
<field name="age">
<field-validator type="int">
<param name="min">13</param>
<param name="max">19</param>
<message>Only people ages 13 to 19 allowed</message>
</field-validator>
</field>
Validator Types
• Conversion
• date
• email
• short – int – long - double
• regex <takes a regular expression>
• required
• requiredstring
• stringlength
• url
• visitor - conditionalvisitor
• expression
Exemple de validation
• <field name=“password">
•   <field-validator type="expression">
•     <param name="expression">
•            password.equals(password2)
•     </param>
•   <message>
•     Password 2 must equal ${password}
•   </message>
• </field-validator>
• </field>
Quelques tags importants
• Affichage d’une propriété de bean :
  • <s:property value="…" />
• Iteration sur des propriétés
  • <s:iterator value="…">
• Construction d’un lien avec paramètres
  • <s:url id="url" action="…"/>
  • <s:param/>
  • <s:a href="…">
• Formulaires
  • <s:form action="…" method="…"/>
  • <s:textfield name="…"/>
  • <s:submit value="…"/>
• Expressions OGNL %{...} dans les attributs
Quelques tags importants
• Affichage d’une propriété de bean :
  • <s:property value="…" />
• Iteration sur des propriétés
  • <s:iterator value="…">
• Construction d’un lien avec paramètres
  • <s:url id="url" action="…"/>
  • <s:param/>
  • <s:a href="…">
• Formulaires
  • <s:form action="…" method="…"/>
  • <s:textfield name="…"/>
  • <s:submit value="…"/>
• Expressions OGNL %{...} dans les attributs
Plan




   1. Struts 2
 2. Exercice
Application carnet d’adresse

• Fonctions implémentée en 3 itération :
  1) Listing des données dans les propretés
  2) Formulaire de recherche dans la liste
  3) Formulaire de mise à jour, création, suppression


• Données d’entrée
  • Application Web de base
  • Classe de DAO
Etape 1 : Intégrer Struts 2
• Ajouter le filtre Struts :
    •Sur une nouvelle application Tomcat
    •Ajouter les jars struts dans WEB-INF/lib
    •Paramétrer le filtre dans le web.xml :
     <filter>
         <filter-name>struts2</filter-name>
         <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
     </filter>
     <filter-mapping>
         <filter-name>struts2</filter-name>
         <url-pattern>/*</url-pattern>
     </filter-mapping>

                                FilterDispatcher Struts2
                                            …
                                    HttpServletFilter 2
                                    HttpServletFilter 1


                    Requête HTTP
Etape 2 : Paramétrage des
                      actions
                                                •Fichier struts.xml dans le classpath.
                    Contrôleur
                                                •Créer la classe action ListAction dérivant
Identification et                               de ActionSupport
instanciation du
Bean d’action                                   •Créer de vues exemple : list.jsp et
                                                error.jsp

                                 FilterDispatcher Struts2
                                            …
                                    HttpServletFilter 2
                                    HttpServletFilter 1


                       Requête HTTP
Etape 2 : Paramétrage de struts

                                                     •Les propriétés du Bean sont initialisées
                    Contrôleur                       par les paramètres de la requête.
                     Initilisation
Identification et
                     à partir des                    •La conversion est automatique par Struts.
instanciation du
                     paramètres de
Bean d’action
                     requête




                                     FilterDispatcher Struts2
                                                …
                                        HttpServletFilter 2
                                        HttpServletFilter 1


                       Requête HTTP
Struts 2 : Cycle de vie de
                       requête
                                   Modèle
                                                     •Passer les infos au travers des propriétés
                                                     du Bean action : disponibles dans la vue
                    Contrôleur
                     Initilisation                   •Eviter d’ajouter de données dans la
Identification et                  Appel de la
instanciation du
                     à partir des
                                   methode           request !
                     paramètres de
Bean d’action                      execute()
                     requête                         •Créer une methode execute qui affiche les
                                                     données.

                                     FilterDispatcher Struts2
                                                 …
                                         HttpServletFilter 2
                                         HttpServletFilter 1


                       Requête HTTP
Struts 2 : Cycle de vie de
                       requête
                                   Modèle

                    Contrôleur                                     Vue
                     Initilisation
Identification et                  Appel de la
                     à partir des                              Génération de la
instanciation du                   methode
                     paramètres de                             sortie
Bean d’action                      execute()
                     requête

                                        Nom du Result
                                        (vue)


                                     FilterDispatcher Struts2         • Ajouter une vue (Result) au
                                                                      Struts.xml
                                                   …
                                         HttpServletFilter 2
                                         HttpServletFilter 1          • list.jsp JSP correspondante.

                       Requête HTTP

Weitere ähnliche Inhalte

Andere mochten auch

286759 martine 34 (1)
286759 martine 34 (1)286759 martine 34 (1)
286759 martine 34 (1)Albert Antebi
 
Modifier votre annonce de location
Modifier votre annonce de locationModifier votre annonce de location
Modifier votre annonce de locationNicolas Chollet
 
NACS Wave 3, Learning Session 3 (FR)
NACS Wave 3, Learning Session 3 (FR)NACS Wave 3, Learning Session 3 (FR)
NACS Wave 3, Learning Session 3 (FR)marc van der woerd
 
OMNIS à SHANGHAÏ 2012
OMNIS à SHANGHAÏ 2012OMNIS à SHANGHAÏ 2012
OMNIS à SHANGHAÏ 2012OMNIS
 
Efficacité energétique
Efficacité energétiqueEfficacité energétique
Efficacité energétiqueAdil Diani
 
7736 Über Enthaltsamkeit und Kasteiung ....
7736   Über Enthaltsamkeit und Kasteiung ....7736   Über Enthaltsamkeit und Kasteiung ....
7736 Über Enthaltsamkeit und Kasteiung ....Marianne Zipf
 
13conseilspourlavie2
13conseilspourlavie213conseilspourlavie2
13conseilspourlavie2hanenab
 
0694 Voraussage gewaltigen Geschehens ....
0694   Voraussage gewaltigen Geschehens ....0694   Voraussage gewaltigen Geschehens ....
0694 Voraussage gewaltigen Geschehens ....Marianne Zipf
 

Andere mochten auch (12)

Frisure
FrisureFrisure
Frisure
 
286759 martine 34 (1)
286759 martine 34 (1)286759 martine 34 (1)
286759 martine 34 (1)
 
Modifier votre annonce de location
Modifier votre annonce de locationModifier votre annonce de location
Modifier votre annonce de location
 
NACS Wave 3, Learning Session 3 (FR)
NACS Wave 3, Learning Session 3 (FR)NACS Wave 3, Learning Session 3 (FR)
NACS Wave 3, Learning Session 3 (FR)
 
MashupXFeed
MashupXFeedMashupXFeed
MashupXFeed
 
OMNIS à SHANGHAÏ 2012
OMNIS à SHANGHAÏ 2012OMNIS à SHANGHAÏ 2012
OMNIS à SHANGHAÏ 2012
 
RICS_1MB
RICS_1MBRICS_1MB
RICS_1MB
 
Efficacité energétique
Efficacité energétiqueEfficacité energétique
Efficacité energétique
 
CV Johnny Beghin
CV Johnny BeghinCV Johnny Beghin
CV Johnny Beghin
 
7736 Über Enthaltsamkeit und Kasteiung ....
7736   Über Enthaltsamkeit und Kasteiung ....7736   Über Enthaltsamkeit und Kasteiung ....
7736 Über Enthaltsamkeit und Kasteiung ....
 
13conseilspourlavie2
13conseilspourlavie213conseilspourlavie2
13conseilspourlavie2
 
0694 Voraussage gewaltigen Geschehens ....
0694   Voraussage gewaltigen Geschehens ....0694   Voraussage gewaltigen Geschehens ....
0694 Voraussage gewaltigen Geschehens ....
 

Ähnlich wie technologie web- part4

Workshop Spring 3 - Tests et techniques avancées du conteneur Spring
Workshop Spring  3 - Tests et techniques avancées du conteneur SpringWorkshop Spring  3 - Tests et techniques avancées du conteneur Spring
Workshop Spring 3 - Tests et techniques avancées du conteneur SpringAntoine Rey
 
Java EE _ Servlet et vue (1).pdf
Java EE _ Servlet et vue (1).pdfJava EE _ Servlet et vue (1).pdf
Java EE _ Servlet et vue (1).pdfColombieColombie
 
Les dessous du framework spring
Les dessous du framework springLes dessous du framework spring
Les dessous du framework springAntoine Rey
 
ENIB cours CAI Web - Séance 3 - JSP/Servlet - Cours
ENIB cours CAI Web - Séance 3 - JSP/Servlet - CoursENIB cours CAI Web - Séance 3 - JSP/Servlet - Cours
ENIB cours CAI Web - Séance 3 - JSP/Servlet - CoursHoracio Gonzalez
 
Workshop Spring - Session 4 - Spring Batch
Workshop Spring -  Session 4 - Spring BatchWorkshop Spring -  Session 4 - Spring Batch
Workshop Spring - Session 4 - Spring BatchAntoine Rey
 
Cours design pattern m youssfi partie 8 stat, template method, command , medi...
Cours design pattern m youssfi partie 8 stat, template method, command , medi...Cours design pattern m youssfi partie 8 stat, template method, command , medi...
Cours design pattern m youssfi partie 8 stat, template method, command , medi...ENSET, Université Hassan II Casablanca
 
API Cockpit : faites communiquer vos applications web
API Cockpit : faites communiquer vos applications webAPI Cockpit : faites communiquer vos applications web
API Cockpit : faites communiquer vos applications webParis, France
 
cours8-GL-minfo-1718.pdf
cours8-GL-minfo-1718.pdfcours8-GL-minfo-1718.pdf
cours8-GL-minfo-1718.pdfSliimAmiri
 
Introduction à AngularJS
Introduction à AngularJSIntroduction à AngularJS
Introduction à AngularJSAbdoulaye Dieng
 
Workshop spring session 2 - La persistance au sein des applications Java
Workshop spring   session 2 - La persistance au sein des applications JavaWorkshop spring   session 2 - La persistance au sein des applications Java
Workshop spring session 2 - La persistance au sein des applications JavaAntoine Rey
 

Ähnlich wie technologie web- part4 (20)

Struts
StrutsStruts
Struts
 
Workshop Spring 3 - Tests et techniques avancées du conteneur Spring
Workshop Spring  3 - Tests et techniques avancées du conteneur SpringWorkshop Spring  3 - Tests et techniques avancées du conteneur Spring
Workshop Spring 3 - Tests et techniques avancées du conteneur Spring
 
Rapport tp2 j2ee
Rapport tp2 j2eeRapport tp2 j2ee
Rapport tp2 j2ee
 
Présentation nouveauté java7
Présentation nouveauté java7Présentation nouveauté java7
Présentation nouveauté java7
 
Rapport tp3 j2ee
Rapport tp3 j2eeRapport tp3 j2ee
Rapport tp3 j2ee
 
Java EE _ Servlet et vue (1).pdf
Java EE _ Servlet et vue (1).pdfJava EE _ Servlet et vue (1).pdf
Java EE _ Servlet et vue (1).pdf
 
Les dessous du framework spring
Les dessous du framework springLes dessous du framework spring
Les dessous du framework spring
 
ENIB cours CAI Web - Séance 3 - JSP/Servlet - Cours
ENIB cours CAI Web - Séance 3 - JSP/Servlet - CoursENIB cours CAI Web - Séance 3 - JSP/Servlet - Cours
ENIB cours CAI Web - Séance 3 - JSP/Servlet - Cours
 
Workshop Spring - Session 4 - Spring Batch
Workshop Spring -  Session 4 - Spring BatchWorkshop Spring -  Session 4 - Spring Batch
Workshop Spring - Session 4 - Spring Batch
 
Cours design pattern m youssfi partie 8 stat, template method, command , medi...
Cours design pattern m youssfi partie 8 stat, template method, command , medi...Cours design pattern m youssfi partie 8 stat, template method, command , medi...
Cours design pattern m youssfi partie 8 stat, template method, command , medi...
 
Les Servlets et JSP
Les Servlets et JSPLes Servlets et JSP
Les Servlets et JSP
 
API Cockpit : faites communiquer vos applications web
API Cockpit : faites communiquer vos applications webAPI Cockpit : faites communiquer vos applications web
API Cockpit : faites communiquer vos applications web
 
cours8-GL-minfo-1718.pdf
cours8-GL-minfo-1718.pdfcours8-GL-minfo-1718.pdf
cours8-GL-minfo-1718.pdf
 
Servlets et JSP
Servlets et JSPServlets et JSP
Servlets et JSP
 
spring.pdf
spring.pdfspring.pdf
spring.pdf
 
Java Server Faces 2
Java Server Faces 2Java Server Faces 2
Java Server Faces 2
 
2
22
2
 
Introduction à AngularJS
Introduction à AngularJSIntroduction à AngularJS
Introduction à AngularJS
 
Workshop spring session 2 - La persistance au sein des applications Java
Workshop spring   session 2 - La persistance au sein des applications JavaWorkshop spring   session 2 - La persistance au sein des applications Java
Workshop spring session 2 - La persistance au sein des applications Java
 
Jboss Seam
Jboss SeamJboss Seam
Jboss Seam
 

Mehr von Benoît Simard

Mehr von Benoît Simard (6)

Paris meetup-rdf
Paris meetup-rdfParis meetup-rdf
Paris meetup-rdf
 
20161020 - Paris - Retour GC
20161020  - Paris - Retour GC20161020  - Paris - Retour GC
20161020 - Paris - Retour GC
 
technologie web - part3
technologie web - part3technologie web - part3
technologie web - part3
 
technologie web - part2
technologie web - part2technologie web - part2
technologie web - part2
 
technologie web
technologie webtechnologie web
technologie web
 
Formation Play! framework
Formation Play! frameworkFormation Play! framework
Formation Play! framework
 

Kürzlich hochgeladen

Evaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. MarocpptxEvaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. MarocpptxAsmaa105193
 
Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024Alain Marois
 
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdfSKennel
 
Présentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptxPrésentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptxrababouerdighi
 
Le Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeLe Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeXL Groupe
 
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdfSKennel
 
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSKennel
 
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETCours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETMedBechir
 
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .Txaruka
 
Cours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETCours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETMedBechir
 
Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024Gilles Le Page
 
Principe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 tempsPrincipe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 tempsRajiAbdelghani
 
Formation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipFormation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipM2i Formation
 
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSKennel
 
Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptxTxaruka
 
SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSKennel
 
le present des verbes reguliers -er.pptx
le present des verbes reguliers -er.pptxle present des verbes reguliers -er.pptx
le present des verbes reguliers -er.pptxmmatar2
 
Saint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptxSaint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptxMartin M Flynn
 

Kürzlich hochgeladen (20)

Evaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. MarocpptxEvaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. Marocpptx
 
Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024
 
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
 
Présentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptxPrésentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptx
 
Le Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeLe Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directe
 
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
 
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
 
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETCours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
 
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
 
Cours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETCours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSET
 
Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024
 
Principe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 tempsPrincipe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 temps
 
Pâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie PelletierPâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie Pelletier
 
Formation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipFormation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadership
 
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
 
DO PALÁCIO À ASSEMBLEIA .
DO PALÁCIO À ASSEMBLEIA                 .DO PALÁCIO À ASSEMBLEIA                 .
DO PALÁCIO À ASSEMBLEIA .
 
Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptx
 
SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
 
le present des verbes reguliers -er.pptx
le present des verbes reguliers -er.pptxle present des verbes reguliers -er.pptx
le present des verbes reguliers -er.pptx
 
Saint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptxSaint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptx
 

technologie web- part4

  • 1. Technologie Web Struts 2 Le 3 Décembre 2010
  • 2. Plan  1. Struts 2 2. Exercice
  • 3. Présentation • Architecture simple • Facile à apprendre • Architecture MVC • Possède beaucoup de composants
  • 4. MVC
  • 5. Cycle de vie Action / Interceptor / Result
  • 6. Les Actions • Doivent étendre de ActionSupport • Contiennent les données du model • Sont mappées sur les URLS • Se configurent dans le fichier struts.xml • Exemple <package name="monPackage" extends="struts-default"> <action name=“ uri“ class=“ class“ method=“ method"> <result name=” success” >destination.jsp</result> </action> <package>
  • 7. Wildcard Mapping <package name="exemple" extends="struts-default"> <action name=“ contact_*" class=“ fr.ima.uco.ContactAction" method=“ {1} "> <result>/contact/{1}.jsp</result> </action> <package> http://localhost:8080/exemple/contact_list.action
  • 8. La classe Action public class ContactAction extends ActionSupport { private Contact contact; private ContactService service; public String delete(){ … } public String update(){…} // GETTER & SETTER }
  • 9. La validation • Form <s:textfield key="age"/> • Action private int age; get/set • Validator <ActionClassName>-validation.xml <field name="age"> <field-validator type="int"> <param name="min">13</param> <param name="max">19</param> <message>Only people ages 13 to 19 allowed</message> </field-validator> </field>
  • 10. Validator Types • Conversion • date • email • short – int – long - double • regex <takes a regular expression> • required • requiredstring • stringlength • url • visitor - conditionalvisitor • expression
  • 11. Exemple de validation • <field name=“password"> • <field-validator type="expression"> • <param name="expression"> • password.equals(password2) • </param> • <message> • Password 2 must equal ${password} • </message> • </field-validator> • </field>
  • 12. Quelques tags importants • Affichage d’une propriété de bean : • <s:property value="…" /> • Iteration sur des propriétés • <s:iterator value="…"> • Construction d’un lien avec paramètres • <s:url id="url" action="…"/> • <s:param/> • <s:a href="…"> • Formulaires • <s:form action="…" method="…"/> • <s:textfield name="…"/> • <s:submit value="…"/> • Expressions OGNL %{...} dans les attributs
  • 13. Quelques tags importants • Affichage d’une propriété de bean : • <s:property value="…" /> • Iteration sur des propriétés • <s:iterator value="…"> • Construction d’un lien avec paramètres • <s:url id="url" action="…"/> • <s:param/> • <s:a href="…"> • Formulaires • <s:form action="…" method="…"/> • <s:textfield name="…"/> • <s:submit value="…"/> • Expressions OGNL %{...} dans les attributs
  • 14. Plan 1. Struts 2  2. Exercice
  • 15. Application carnet d’adresse • Fonctions implémentée en 3 itération : 1) Listing des données dans les propretés 2) Formulaire de recherche dans la liste 3) Formulaire de mise à jour, création, suppression • Données d’entrée • Application Web de base • Classe de DAO
  • 16. Etape 1 : Intégrer Struts 2 • Ajouter le filtre Struts : •Sur une nouvelle application Tomcat •Ajouter les jars struts dans WEB-INF/lib •Paramétrer le filtre dans le web.xml : <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> FilterDispatcher Struts2 … HttpServletFilter 2 HttpServletFilter 1 Requête HTTP
  • 17. Etape 2 : Paramétrage des actions •Fichier struts.xml dans le classpath. Contrôleur •Créer la classe action ListAction dérivant Identification et de ActionSupport instanciation du Bean d’action •Créer de vues exemple : list.jsp et error.jsp FilterDispatcher Struts2 … HttpServletFilter 2 HttpServletFilter 1 Requête HTTP
  • 18. Etape 2 : Paramétrage de struts •Les propriétés du Bean sont initialisées Contrôleur par les paramètres de la requête. Initilisation Identification et à partir des •La conversion est automatique par Struts. instanciation du paramètres de Bean d’action requête FilterDispatcher Struts2 … HttpServletFilter 2 HttpServletFilter 1 Requête HTTP
  • 19. Struts 2 : Cycle de vie de requête Modèle •Passer les infos au travers des propriétés du Bean action : disponibles dans la vue Contrôleur Initilisation •Eviter d’ajouter de données dans la Identification et Appel de la instanciation du à partir des methode request ! paramètres de Bean d’action execute() requête •Créer une methode execute qui affiche les données. FilterDispatcher Struts2 … HttpServletFilter 2 HttpServletFilter 1 Requête HTTP
  • 20. Struts 2 : Cycle de vie de requête Modèle Contrôleur Vue Initilisation Identification et Appel de la à partir des Génération de la instanciation du methode paramètres de sortie Bean d’action execute() requête Nom du Result (vue) FilterDispatcher Struts2 • Ajouter une vue (Result) au Struts.xml … HttpServletFilter 2 HttpServletFilter 1 • list.jsp JSP correspondante. Requête HTTP