Struts

Home

Besoin

Fournir un framework Web Java Open Source prenant en charge :

Analyse

Struts externalise les interactions entre requête et actions ainsi que le contrôle de validité des formulaires.

Conception

Struts applique le DP MVC qui répartit les responsabilités entre :

Lors de la réception d'une requête Web, la servlet de Struts examine l'URL demandé et lui cherche une correspondance (mapping) dans les classes d'actions spécifiées par le développeur. Une instance de cette classe d'action est récupérée (d'un pool) et exécutée.

Cette exécution effectue divers appels métiers, prépare généralement un formulaire (form bean) nécessaire à la vue. et retourne un code symbolique indiquant le résultat de son action. La servlet reçoit ce code et lui troue une correspondance (mapping) de vue (JSP) à afficher.

La JSP importe les balises Struts et les utilise pour insérer simplement des données du formulaire (form bean) dans la page retournée à l'utilisateur.

Implémentation

Les formulaires sont des JavaBeans héritant de org.apache.struts.action.ActionForm. Etant gérés dans un pool, ils doivent avoir un constructeur par défaut.

Les vues sont des JSP utilisant des TagLibs Struts telles que :

Tout formulaire se :

  1. réinitialise via sa méthode reset()
  2. remplit à partir d'une requête (soumission d'un formulaire HTML) via sa méthode populate()
  3. valide (accepte ou rejete les données qu'il contient) via sa méthode validate().

Contrôleur

Le contrôleur est constitué de :

Configuration

Une WebApp utilisant Struts ajoute sous son répertoire WEB-INF un (ou plusieurs) fichier(s) de configuration Struts définissant :

Struts Version 1 Commentaire
Release 0 1
Module Technologie FixPack 1  
Java J2SE 1.2  
JDBC 2.0 Optionnel
Servlet 2.2  
JSP 1.1  
Commons DBCP GenericDataSource (non JNDI) Oui DataBase Connection Pool
File Upload   Oui  
Logging   Oui  
Pool   Oui Pooling d'objets
Services   Oui  
Validator Contribution Oui Validation de formulaires via expressions régulières, code JavaScript généré
BeanUtils org.apache. struts.utils Oui Introspection via des scriplets
Collections org.apache. struts.utils Oui  
Digester org.apache. struts.digester Oui XMLMapping XML vers Java, souvent utilisé pour la lecture de fichiers de configuration.
XML JAXP 1.0 1.1  
DTD Message-Resources Non Oui Internationalisation
Erreurs Declarative Non Oui  
Formulaires ActionForm Oui Formulaires implémentés (classes)
DynaBeans Non Oui Formulaires déclaratifs (XML)
Actions Action Oui  
DispachAction   Non Oui  
LookupDispatchAction      
ForwardAction Non Oui  
TagLib Tiles     Framework d'assemblage de JSP
Html options Oui  
option Oui  
optionsCollection Non Oui Remplir des options HTML à partir d'une collection.
message Oui Insertion d'un libellé.
messages Non Oui Itération d'une collection de messages dans la classe ActionMessages.
ActionForm Oui  
image Oui  
img Oui  
SubmitTag, SelectTag, LinkTag.java, CheckboxTag, ButtonTag, ImageTag, RadioTag, and TextArea tags Oui  
Logic empty/notEmpty Non Oui  
Nested     Taglib
Beans write Non Oui  
cookie Non Oui  
header Non Oui  
parameter Non Oui  
Util LocalStrings Non Oui  
LabelValueBean Non Oui Collection clés/valeurs utilisables pour la baslise <html:options> ou ailleurs.
MessageResources Non Oui Escape any single quote characters that are included in the specified message string.
computeParameters Non Oui Allow a transaction token to be the only parameter in .
RequestUtils Non Oui Change to encode ampersands when building a query string.

Notes

Exemples

Limitations

Voir

Home