SlideShare a Scribd company logo
1 of 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

More Related Content

Viewers also liked

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
 

Viewers also liked (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 ....
 

Similar to 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
 

Similar to 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
 

More from Benoît Simard

More from 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
 

Recently uploaded

DIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptx
DIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptxDIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptx
DIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptxMartin M Flynn
 
Pas de vagues. pptx Film français
Pas de vagues.  pptx      Film   françaisPas de vagues.  pptx      Film   français
Pas de vagues. pptx Film françaisTxaruka
 
Bernard Réquichot.pptx Peintre français
Bernard Réquichot.pptx   Peintre françaisBernard Réquichot.pptx   Peintre français
Bernard Réquichot.pptx Peintre françaisTxaruka
 
Pas de vagues. pptx Film français
Pas de vagues.  pptx   Film     françaisPas de vagues.  pptx   Film     français
Pas de vagues. pptx Film françaisTxaruka
 
Faut-il avoir peur de la technique ? (G. Gay-Para)
Faut-il avoir peur de la technique ? (G. Gay-Para)Faut-il avoir peur de la technique ? (G. Gay-Para)
Faut-il avoir peur de la technique ? (G. Gay-Para)Gabriel Gay-Para
 
Chana Orloff.pptx Sculptrice franco-ukranienne
Chana Orloff.pptx Sculptrice franco-ukranienneChana Orloff.pptx Sculptrice franco-ukranienne
Chana Orloff.pptx Sculptrice franco-ukranienneTxaruka
 
PIE-A2-P 5- Supports stagiaires.pptx.pdf
PIE-A2-P 5- Supports stagiaires.pptx.pdfPIE-A2-P 5- Supports stagiaires.pptx.pdf
PIE-A2-P 5- Supports stagiaires.pptx.pdfRiDaHAziz
 
Bibdoc 2024 - Ecologie du livre et creation de badge.pdf
Bibdoc 2024 - Ecologie du livre et creation de badge.pdfBibdoc 2024 - Ecologie du livre et creation de badge.pdf
Bibdoc 2024 - Ecologie du livre et creation de badge.pdfBibdoc 37
 
Potentiel du Maroc en Produits du Terroir et Stratégie Adoptée pour le dévelo...
Potentiel du Maroc en Produits du Terroir et Stratégie Adoptée pour le dévelo...Potentiel du Maroc en Produits du Terroir et Stratégie Adoptée pour le dévelo...
Potentiel du Maroc en Produits du Terroir et Stratégie Adoptée pour le dévelo...NaimDoumissi
 
Cours de Management des Systèmes d'information
Cours de Management des Systèmes d'informationCours de Management des Systèmes d'information
Cours de Management des Systèmes d'informationpapediallo3
 
PIE-A2-P4-support stagiaires sept 22-validé.pdf
PIE-A2-P4-support stagiaires sept 22-validé.pdfPIE-A2-P4-support stagiaires sept 22-validé.pdf
PIE-A2-P4-support stagiaires sept 22-validé.pdfRiDaHAziz
 
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdfBibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdfBibdoc 37
 
Apprendre avec des top et nano influenceurs
Apprendre avec des top et nano influenceursApprendre avec des top et nano influenceurs
Apprendre avec des top et nano influenceursStagiaireLearningmat
 
La Base unique départementale - Quel bilan, au bout de 5 ans .pdf
La Base unique départementale - Quel bilan, au bout de 5 ans .pdfLa Base unique départementale - Quel bilan, au bout de 5 ans .pdf
La Base unique départementale - Quel bilan, au bout de 5 ans .pdfbdp12
 
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptx
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptxPrésentation - Initiatives - CECOSDA - OIF - Fact Checking.pptx
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptxJCAC
 
Vulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdf
Vulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdfVulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdf
Vulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdfSylvianeBachy
 
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...Bibdoc 37
 

Recently uploaded (18)

DIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptx
DIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptxDIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptx
DIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptx
 
Pas de vagues. pptx Film français
Pas de vagues.  pptx      Film   françaisPas de vagues.  pptx      Film   français
Pas de vagues. pptx Film français
 
Bernard Réquichot.pptx Peintre français
Bernard Réquichot.pptx   Peintre françaisBernard Réquichot.pptx   Peintre français
Bernard Réquichot.pptx Peintre français
 
Pas de vagues. pptx Film français
Pas de vagues.  pptx   Film     françaisPas de vagues.  pptx   Film     français
Pas de vagues. pptx Film français
 
Faut-il avoir peur de la technique ? (G. Gay-Para)
Faut-il avoir peur de la technique ? (G. Gay-Para)Faut-il avoir peur de la technique ? (G. Gay-Para)
Faut-il avoir peur de la technique ? (G. Gay-Para)
 
Bulletin des bibliotheques Burkina Faso mars 2024
Bulletin des bibliotheques Burkina Faso mars 2024Bulletin des bibliotheques Burkina Faso mars 2024
Bulletin des bibliotheques Burkina Faso mars 2024
 
Chana Orloff.pptx Sculptrice franco-ukranienne
Chana Orloff.pptx Sculptrice franco-ukranienneChana Orloff.pptx Sculptrice franco-ukranienne
Chana Orloff.pptx Sculptrice franco-ukranienne
 
PIE-A2-P 5- Supports stagiaires.pptx.pdf
PIE-A2-P 5- Supports stagiaires.pptx.pdfPIE-A2-P 5- Supports stagiaires.pptx.pdf
PIE-A2-P 5- Supports stagiaires.pptx.pdf
 
Bibdoc 2024 - Ecologie du livre et creation de badge.pdf
Bibdoc 2024 - Ecologie du livre et creation de badge.pdfBibdoc 2024 - Ecologie du livre et creation de badge.pdf
Bibdoc 2024 - Ecologie du livre et creation de badge.pdf
 
Potentiel du Maroc en Produits du Terroir et Stratégie Adoptée pour le dévelo...
Potentiel du Maroc en Produits du Terroir et Stratégie Adoptée pour le dévelo...Potentiel du Maroc en Produits du Terroir et Stratégie Adoptée pour le dévelo...
Potentiel du Maroc en Produits du Terroir et Stratégie Adoptée pour le dévelo...
 
Cours de Management des Systèmes d'information
Cours de Management des Systèmes d'informationCours de Management des Systèmes d'information
Cours de Management des Systèmes d'information
 
PIE-A2-P4-support stagiaires sept 22-validé.pdf
PIE-A2-P4-support stagiaires sept 22-validé.pdfPIE-A2-P4-support stagiaires sept 22-validé.pdf
PIE-A2-P4-support stagiaires sept 22-validé.pdf
 
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdfBibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
 
Apprendre avec des top et nano influenceurs
Apprendre avec des top et nano influenceursApprendre avec des top et nano influenceurs
Apprendre avec des top et nano influenceurs
 
La Base unique départementale - Quel bilan, au bout de 5 ans .pdf
La Base unique départementale - Quel bilan, au bout de 5 ans .pdfLa Base unique départementale - Quel bilan, au bout de 5 ans .pdf
La Base unique départementale - Quel bilan, au bout de 5 ans .pdf
 
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptx
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptxPrésentation - Initiatives - CECOSDA - OIF - Fact Checking.pptx
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptx
 
Vulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdf
Vulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdfVulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdf
Vulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdf
 
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...
 

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