SlideShare uma empresa Scribd logo
1 de 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

Mais conteúdo relacionado

Destaque

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
 

Destaque (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 ....
 

Semelhante a 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
 

Semelhante a 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
 

Mais de Benoît Simard

Mais de 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
 

Último

Télécommunication et transport .pdfcours
Télécommunication et transport .pdfcoursTélécommunication et transport .pdfcours
Télécommunication et transport .pdfcourshalima98ahlmohamed
 
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetFormation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetJeanYvesMoine
 
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...Universidad Complutense de Madrid
 
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptxIntégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptxabdououanighd
 
Neuvaine de la Pentecôte avec des textes de saint Jean Eudes
Neuvaine de la Pentecôte avec des textes de saint Jean EudesNeuvaine de la Pentecôte avec des textes de saint Jean Eudes
Neuvaine de la Pentecôte avec des textes de saint Jean EudesUnidad de Espiritualidad Eudista
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...Nguyen Thanh Tu Collection
 
Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfAmgdoulHatim
 
L application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxL application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxhamzagame
 
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANKRAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANKNassimaMdh
 
Apolonia, Apolonia.pptx Film documentaire
Apolonia, Apolonia.pptx         Film documentaireApolonia, Apolonia.pptx         Film documentaire
Apolonia, Apolonia.pptx Film documentaireTxaruka
 
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxCopie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxikospam0
 
les_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhkles_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhkRefRama
 
python-Cours Officiel POO Python-m103.pdf
python-Cours Officiel POO Python-m103.pdfpython-Cours Officiel POO Python-m103.pdf
python-Cours Officiel POO Python-m103.pdftrendingv83
 
Cours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiquesCours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiquesMohammedAmineHatoch
 
L'expression du but : fiche et exercices niveau C1 FLE
L'expression du but : fiche et exercices  niveau C1 FLEL'expression du but : fiche et exercices  niveau C1 FLE
L'expression du but : fiche et exercices niveau C1 FLElebaobabbleu
 

Último (16)

Télécommunication et transport .pdfcours
Télécommunication et transport .pdfcoursTélécommunication et transport .pdfcours
Télécommunication et transport .pdfcours
 
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetFormation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
 
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
 
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptxIntégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
 
Neuvaine de la Pentecôte avec des textes de saint Jean Eudes
Neuvaine de la Pentecôte avec des textes de saint Jean EudesNeuvaine de la Pentecôte avec des textes de saint Jean Eudes
Neuvaine de la Pentecôte avec des textes de saint Jean Eudes
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
 
Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdf
 
L application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxL application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptx
 
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANKRAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
 
Apolonia, Apolonia.pptx Film documentaire
Apolonia, Apolonia.pptx         Film documentaireApolonia, Apolonia.pptx         Film documentaire
Apolonia, Apolonia.pptx Film documentaire
 
Echos libraries Burkina Faso newsletter 2024
Echos libraries Burkina Faso newsletter 2024Echos libraries Burkina Faso newsletter 2024
Echos libraries Burkina Faso newsletter 2024
 
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxCopie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
 
les_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhkles_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhk
 
python-Cours Officiel POO Python-m103.pdf
python-Cours Officiel POO Python-m103.pdfpython-Cours Officiel POO Python-m103.pdf
python-Cours Officiel POO Python-m103.pdf
 
Cours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiquesCours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiques
 
L'expression du but : fiche et exercices niveau C1 FLE
L'expression du but : fiche et exercices  niveau C1 FLEL'expression du but : fiche et exercices  niveau C1 FLE
L'expression du but : fiche et exercices niveau C1 FLE
 

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