Home |
---|
Fournir un framework Web Java Open Source prenant en charge :
Struts externalise les interactions entre requête et actions ainsi que le contrôle de validité des formulaires.
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.
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 :
struts-html
pour la construction de code HTML (y
compris formulaires depuis Struts 1.1)struts-bean
pour l'accès aux propriétés
de JavaBeans (modèles) struts-nested
pour la version de ces TagLib intégrant
la notion de hiérarchieTout formulaire se :
reset()
populate()
validate()
.Le contrôleur est constitué de :
org.apache.struts.action.ActionServlet
fournie par Struts ou dérivéeorg.apache.struts.action.Action
. En tant que commande, une
action n'a qu'à redéfinir le code de sa méthode execute()
pour
indiquer ce qu'elle fait lorsqu'on l'invoque. Cette méthode retourne un ActionForward
représentant
le résultat de l'exécution. C'est en fonction de ce résultat que la prochaine
vue à afficher (ou autre action à exécuter) est choisie d'après la configuration
Struts. Cependant, plusieurs autres actions plus spécialisées sont disponibles
:
DispachAction
, qui exécute telle ou telle méthode (pas
uniquement execute()
) en fonction d'un paramètre de la requête soumise.
Ceci est pratique lorsque l'action varie fortement en fonction des paramètres
(création, suppression, mise à jour par exemple).
LookupDispatchAction
qui considère le paramètre d'action
comme provenant directement des boutons de l'interface utilisateur.ForwardAction
, qui n'effectue rien d'autre que de rediriger
vers une destination (une vue typiquement). Ceci évite d'avoir à écrire
des classes d'action aussi simples.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.
GenericDataSource
) est livrée
pour les infrastructures qui en manquent (Tomcat
par exemple).ServletContext
de la WebApp. Mieux vaut leurs préferer
les sources de données fournies par le serveur applicatif (WAS,
WLS), qui ont l'avantage d'être plus performantes
et accessibles via le service de nommage (API JNDI).
Des DataSource JNDI existent depuis Struts 1.1Home |
---|