Struts

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