Présenté par : Encadré par :
Taha ZOUHAIR Pr. Zemmouri EL M.
Plan
I. Introduction
II. Struts2
III. Modèle
IV. Vue
V. Contrôleur (Action class)
VI. Gestion des excéptions
VII. Conclusion
VIII. Démonstration
Introduction
Un Framework est un cadre de travail
Séparation de l’application selon
l’architecture MVC2
Séparation des tâches
Améliorer la maintenabilité de
l’application à long terme
Struts2
Open Source
Maintenu par l’Apache Software Foundation
Bien documenté
Communauté active
Struts 2.3.1.2 (22 Janvier 2012)
API Servlet 2.4+
JSP 2.0+
Java 5+
Modèle
Persistance des données
Une classe JavaBean
Différentes possibilités : JDBC, EJB,
Hibernate, etc
Vue
Partie visuelle de l’architecture MVC
Support de plusieurs formats : JSP, JSF,
XSLT, PDF, Jakarta Velocity Engine
Librairies de balises (Taglibs)
• Support des taglibs :
<%@ taglib prefix="s" uri="/struts-tags" %>
• Exemple de taglibs :
Balise Description
url Générateur d’URL pour action
param URL avec paramètres (GET)
property Accès au ValueStack
form Formulaire
textfield Champ de formulaire
Implémentation du tag url
Affichage du lien de l’action hello
<a href="<s:url action='hello'/>">Hello World</a>
Affichage du lien de l’action hello avec
paramètres
<s:url action="hello" var="helloLink">
<s:param name="userName">Bruce Phillips</s:param>
</s:url>
<a href="${helloLink}">Hello Bruce Phillips</a>
hello.action?userName=Bruce+Phillips
Le ValueStack (Pile de valeurs)
Contrôleur (Action class)
Classe JavaBean
Classe héritant de ActionSupport
Implémenter la logique de l’action
Retour d’un résultat
struts.xml
<action name="hello" class="action.HelloWorldAction" method="execute">
<result name="success">/HelloWorld.jsp</result>
</action>
Gestion des exceptions
struts.xml
<global-exception-mappings>
<exception-mapping exception="exceptions.SecurityException" result="securityerror" />
<exception-mapping exception="java.lang.Exception" result="error" />
</global-exception-mappings>
<global-results>
<result name="securityerror">/securityerror.jsp</result>
<result name="error">/error.jsp</result>
</global-results>
Conclusion
Réutilisation de code
Facilité de maintenance
Rapidité de développement
Gain de temps et d’argent
DÉMONSTRATION
Références
http://struts.apache.org
http://www.ibm.com/developerworks/web
/library/wa-dynamicstruts
Merci pour votre attention