Tutoriel Struts 2 - Solution unique pour les débutants



Cet article sur le didacticiel Struts 2 vous aidera à démarrer avec le framework Struts 2 pour le développement d'applications Web J2EE avec la démonstration de code.

Si vous cherchez un qui peut vous aider à développer rapidement et efficacement des applications Web JEE, Struts 2 est la solution parfaite pour vous. Struts 2 est un framework open source largement utilisé sur le marché. Grâce à ce didacticiel Struts 2, je vais vous aider à démarrer avec des implémentations pratiques.

Vous trouverez ci-dessous les sujets dont je discuterai dans ce didacticiel Struts:





Qu'est-ce que Struts?

En termes simples, Struts est un Framework open-source qui aide au développement d'applications Web dans J2EE. Ilétend le et promeut le modèle, la vue, le contrôleur ( MVC ) architecture.Cela rend les applications Web développées dans des technologies standard telles queJSP, JavaBeans et XML, plus maintenables, extensibles et flexibles.

Le Framework Struts a été initialement développé par Craig McClanahan et a été remis à Apache Foundation en mai 2000. Peu à peu, il capture la position d'un projet Apache de haut niveau en 2005 et plus tard en février 2007, il a été remplacé par Jambes 2 .



Le framework Struts était largement basé sur le MVC (Modèle Vue Contrôleur) paradigme de conception. Son objectif principal était de séparer le modèle de la vue et du contrôleur dans l'application afin de réduire la dépendance et de promouvoir la séparation des préoccupations (SoC). En d'autres termes, cela a aidé à séparer la logique d'application qui communique principalement avec la base de donnéesdu à travers lequel l'utilisateur interagit avec l'application et l'instance, ce qui aide à canaliser les informations entre le modèle et la vue.

Caractéristiques de Struts 2

  1. Formulaires et actions basés sur POJO :Les classes d'action dans Struts sont traitées comme le contrôleur dans l'application. Ils sont chargés de répondre à une action de l'utilisateur, d'exécuter la logique métier et de renvoyer un résultat avec la vue qui doit être rendue. Il agit également en tant que classe Model.
  2. Balises et personnalisation améliorées: Différents types de balises ont été introduites dans Struts 2, telles que les balises d'interface utilisateur, les balises de contrôle, les balises de données, etc., ce qui facilite le développement d'applications.
  3. Fonctionnalité AJAX: Struts 2 prend en charge la technologie ajax qui est généralement utilisée pour générer une requête asynchrone. Cela améliore les performances de l'application en envoyant uniquement les données de champ requises au serveur.
  4. Intégration facile: Il permet une intégration facile avec d'autres frameworks Web tels que , DWR, SiteMesh et Tiles.
  5. Configurations minimales: Lors de l'utilisation de l'application Struts 2, aucune configuration de surcharge n'est requise. Il fonctionne avec des configurations minimales où la plupart des paramètres prennent les valeurs par défaut, sauf en cas d'écart.
  6. Intégrez View Technologies: Avec Struts2, vous pouvez facilement intégrer diverses technologies de vue telles que XSLT, JSP, Freemarker, vitesse, etc.
  7. Thème et modèles: Struts 2 prend en charge 3 types de thèmes:
    1. Xhtml
    2. Facile
    3. Css_xhtml

Ici, XHTML est le thème par défaut de Struts 2 et est principalement utilisé pour l'aspect général.

Maintenant que vous savez ce qu'est Struts et ses différentes fonctionnalités, passons maintenant à l'article du didacticiel Struts et découvrons son architecture.



Architecture

Architecture Struts - Tutoriel Struts 2 - EdurekaComme vous pouvez le voir dans le diagramme ci-dessus, Struts utilise des Architecture MVC . Ici, le filtre de servlet de répartition Struts2 est utilisé pour implémenter le contrôleur tandis que les actions sont utilisées pour implémenter le modèle et la vue est implémentée en combinant les types de résultats et les résultats. Dans cette architecture, le fil conducteur, la liaison et l'intégration avec d'autres composants sont activés par la pile de valeurs et OGNL. En plus de cela, les configurations pour les applications Web ainsi que les actions, les intercepteurs, les résultats, etc. aident également à canaliser beaucoup d'informations.

Maintenant, laissez-moi vous expliquer le workflow complet au cours du cycle de vie d'une requête générée par l'utilisateur. Ci-dessous, j'ai répertorié le flux de travail étape par étape pour votre meilleure compréhension du fonctionnement de Struts:

  • Il commence par la demande de l'utilisateur qui est envoyée au serveur pour demander une ressource.
  • Cette demande est ensuite traitée par le répartiteur de filtres pour déterminer l'action appropriée.
  • En outre, des fonctionnalités d'intercepteur correctement configurées sont ensuite appliquées à la demande, telles que la validation, le téléchargement de fichiers, etc.
  • Une fois que l'action sélectionnée est décidée et exécutée en fonction de l'opération demandée.
  • Dans le cas où tout post-traitement requis, des intercepteurs configurés sont appelés.
  • Au final, le résultat est fourni par la vue et est retourné à l'utilisateur.

J'espère que cela efface le flux de travail dans une application Struts. Voyons maintenant ce dont vous avez besoin dans votre système pour démarrer avec Struts dans la section suivante de ce didacticiel Struts 2

Configuration de l'environnement

Ci-dessous, j'ai répertorié les éléments de base nécessaires pour démarrer avec Struts 2:

  • Java
    Si Java n’est pas installé sur votre système, vous pouvez vous référer à la Installation de Java article.
  • Matou
    Si vous n'avez pas Tomcat dans votre système, vous pouvez visiter Ici en téléchargement gratuit.
  • IDE (de préférence Eclipse)
    Enfin, vous avez besoin de votre Eclipse IDE pour le développement d'applications.

Une fois terminé, vous êtes prêt à vous mouiller les pieds avec Struts. Dans la section suivante de ce didacticiel Struts 2, je vais vous donner un bref aperçu des concepts fondamentaux de Struts 2.

Concepts fondamentaux

1. Configurations

Dans toute application Struts, il existe deux fichiers de configuration principaux:

  1. Fichier struts.xml: Ce fichier contient les informations concernant leconfiguration qui sont modifiées en tant qu'actions. Il est principalement utilisé pour remplacer les paramètres par défaut dans une application. Ce fichier est généralement créé dans le répertoire WEB-INF / classes de tout projet Struts.
  2. Fichier struts.properties: Ce fichier fournit un mécanisme qui peut modifier le comportement du framework. Depuis unframework utilise un certain nombre de propriétés que vous pouvez modifier selon vos besoins.

2. Actions

Les actions ou les classes d'action sont les concepts de base de toute application Struts 2, car elles agissent en tant que contrôleur dans le modèle MVC. En d'autres termes, les classes Action contiennent la logique métier qui facilite le traitement des données. Autre que cela, la classe d'action est également responsable derépondre à une demande des utilisateurs, exécuter la logique métier. Il aide également le framework à déterminer et à renvoyer un résultat sur la base du fichier de configuration (struts.xml), de nouveau à l'utilisateur pour le rendu de la page View.

Les classes d'actions Stuts2 ne sont pas de nature singleton, c'est-à-dire qu'une instance de cette classe sera créée avec chaque requête. Ainsi, ils n'ont pas besoin d'être thread-safe et sont simples et indépendants. Cela rend le test de ces classes beaucoup plus facile.

Un fichier d'action peut être créé de trois manières, qui sont les suivantes:

  • Classe d'action simple
    Toute classe Java concrète peut être utilisée comme classe d'action Struts 2, mais la seule exigence est que la classe doit contenir une méthode execute () avec le type de retour String. Voici le code pour créer une classe d'action simple:
package com.edureka.struts2.action public class DemoAction {chaîne publique execute () {return 'Welcome!' }}
  • Implémentation de l'interface d'action
    Une classe Action Struts 2 peut également être créée en implémentant l'interface com.opensymphony.xwork2.Action. Il contient une seule méthode, c'est-à-dire execute () qui doit être implémentée par la classe d'implémentation. En implémentant cette interface, vous pouvez utiliser plusieurs constantes telles que SUCCESS, ERROR, NONE, INPUT et LOGIN qui peuvent être utilisées pour les pages de résultats.
    Le code ci-dessous montre un exemple pour le même:
package com.edureka.struts2.action import com.opensymphony.xwork2.Action classe publique DemoAction implémente Action {chaîne publique execute () {return SUCCESS}}
  • Extension de la classe ActionSupport

Les classes d'action dans Struts 2 étendent généralement la classe Action Support qui est l'implémentation par défaut de l'interface Action. Il fournit diverses fonctionnalités impératives pour le développement d'applications Web telles que la validation des données, le message de niveau d'action, le message d'erreur de niveau d'action, le message d'erreur au niveau du champ et la ressource de lecture groupée, etc.

Voici la mise en œuvre de la même chose:

package com.edureka.struts2.action import com.opensymphony.xwork2.ActionSupport classe publique DemoAction étend ActionSupport {@Override public String execute () lève une exception {return SUCCESS}}

3. Intercepteurs

Interceptor agit comme l'un des principaux piliers du framework Struts 2. Ce n'est qu'un objetqui est invoquée pendant le prétraitement et le post-traitement d'une requête.Il aide à contrôler et à maintenir la transition en douceur du cycle de demande et de réponse.

Le principal avantage de l'utilisation d'intercepteurs est qu'il est enfichable. Ce que je veux dire, c'est au cas où vous n'auriez plus recours à une préoccupation spécifique commevalidation, gestion des exceptions, journalisation, etc., vous pouvez facilement le supprimer de l'application sans avoir à le redéployer. Pour cela, il vous suffit de supprimer l'entrée du fichier struts.xml.

Le framework Struts2 fournit un ensemble complet d'intercepteurs prédéfinis et de piles d'intercepteurs communs que j'ai énumérés dans le tableau ci-dessous:

Intercepteur La description
alias Cela permet aux paramètres d'avoir des alias de nom différents selon les demandes des utilisateurs
case à cocher Cela aide à gérer les cases à cocher en ajoutant une valeur de paramètre de false pour les cases à cocher n'a pas été cochée
conversionError Cela place les informations d'erreur de la conversion des chaînes en types de paramètres dans les erreurs de champ de l'action
createSession Cela crée implicitement une session HTTP au cas où il n'y en aurait pas
débogage Cela fournit divers écrans de débogage au développeur
execAndWait Cela transfère l'utilisateur vers une page d'attente intermédiaire lorsque l'action est exécutée en arrière-plan
exception Cela mappe les exceptions qui sont lancées de l'action vers un résultat
téléchargement de fichiers Cela facilite le téléchargement de fichiers dans Struts 2
i18n Cela permet de garder une trace des paramètres régionaux spécifiés pendant la session d'un utilisateur
journaux Cela fournit une journalisation simple à l'utilisateur en générant la sortie sous le nom de l'action en cours d'exécution
paramètres Cela aide à définir les paramètres de demande sur l'action
préparer Ceci est utilisé pour effectuer des travaux de prétraitement
profil Cela permet d'obtenir des informations de profilage simples pour la journalisation des actions.
portée Cela stocke et récupère l'état de l'action pendant la session utilisateur ou l'étendue de l'application
ServletConfig Cela permet à l'action d'accéder à diverses informations basées sur les servlets
minuteur Cela fournit des informations de profilage simples
jeton Cela aide à vérifier l'action pour un jeton valide afin d'éviter les soumissions de formulaires en double
validation Cela fournit un support de validation pour diverses actions

4. Pile de valeurs

ValueStackdans Struts2 est la zone de stockage où toutes les données de l'application sont stockées pour traiter une demande. Ces données sont conservées dans leActionContexteobjets qui utilisent leThreadLocalpour récupérer les valeurs spécifiques à tout thread de demande client spécifique.

5. OGNL

OGNL signifie Object-Graph Navigation Language. C'est un langage d'expression puissant tout comme JSP et est principalement utilisé pour leréférence et manipulation des données présentes dans ValueStack. De plus, il facilite également le transfert et la conversion du type de données.

Semblable à JSP, OGNL contient un objet racine dans le contexte de l'application. Ainsi, vous pouvez fournir la référence de l'objet par défaut en utilisant la notation de balisage qui, dans ce cas, est indiquée par le symbole dièse. Le framework Struts 2 implémente OGNL en créant une carte ActionContext. Ci-dessous, j'ai répertorié les composants de la carte ActionContext:

  • Application
  • Session
  • Pile de valeurs
  • Demande
  • Paramètres
  • Les attributs

Avec cela, vous êtes à travers les bases de Struts 2. Dans la section suivante de cet article Struts 2, sautons directement dans le code et implémentons tout ce que vous avez appris jusqu'à présent.

avantages de jquery sur javascript

Démo du didacticiel Struts 2

Ici, je vais créer une application simple où vous devez entrer votre nom et l'application vous accueillera. Voici la capture d'écran de la structure complète du projet:

Comme vous pouvez le voir, dans ce projet, nous allons créer 5 fichiers qui sont:

  1. HelloWorld.java
  2. index.jsp
  3. welcome.jsp
  4. web.xml
  5. struts.xml

Remarque: avant de démarrer ce projet, assurez-vous que Tomcat est déjà installé sur votre système.

ÉTAPE I: Dans votre Eclipse, accédez à Fichier> Nouveau> Projet Web dynamique. Entrez le nom du projet et cliquez sur New Runtime.

ÉTAPE II: Ici, vous devez sélectionner la version d'Apache Tomcat que vous avez téléchargée sur votre système et cliquez sur Suivant.

ÉTAPE III: Ensuite, cliquez sur Parcourir et accédez au répertoire dans lequel les dépendances Tomcat ont été enregistrées. Une fois terminé, cliquez sur Terminer et procédez à la création du projet.

ÉTAPE IV: Ajoutons maintenant les fichiers jar Struts qui seront nécessaires à l’exécution réussie de ce projet. Vous pouvez télécharger les JAR à partir de Ici . Une fois que vous êtes prêt avec les fichiers JAR, copiez les JAR et collez-les sous WebContent> WEB-INF> lib.

ÉTAPE V: Maintenant que nous sommes prêts avec toutes les configurations, mettons en place les fichiers de code, en commençant par HelloWorld.java. Pour cela, faites un clic droit sur le projet> Nouveau> Classe. Remplissez le package et le nom de la classe et cliquez sur Terminer.

ÉTAPE VI: Tapez le code ci-dessous dans le HelloWorld.java fichier.

package com.edureka public class HelloWorld {private String name public String getName () {return name} public void setName (String name) {this.name = name} public String execute () {return 'success'}}

ÉTAPE VII: Ensuite, créez un nouveau index.jsp fichier sous WebContent et tapez le code ci-dessous:

 

ÉTAPE VIII: Maintenant, créez à nouveau un nouveau welcome.jsp fichier sous WebContent et tapez le code ci-dessous:

Bienvenue:

ÉTAPE IX: Maintenant, allez dans WebContent> WEB-INF et tapez le code ci-dessous dans le web.xml fichier.

Struts2Demo index.html struts2 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareandExecuteFilter struts2 / *

ÉTAPE X: Enfin, sous Java Resources> src, créez struts.xml fichier

welcome.jsp

ÉTAPE XI: Allez maintenant à la index.jsp page et faites un clic droit dessus. Sélectionnez Exécuter sur le serveur pour exécuter l'application.

Cela nous amène à la fin de cet article sur le didacticiel Struts 2. Si vous souhaitez en savoir plus sur Java, vous pouvez consulter notre .

Maintenant que vous avez compris ce qu'est un didacticiel Struts 2, consultez le par Edureka, une entreprise d'apprentissage en ligne de confiance avec un réseau de plus de 250 000 apprenants satisfaits répartis dans le monde entier. Le cours de formation et de certification Java J2EE et SOA d'Edureka est conçu pour les étudiants et les professionnels qui souhaitent devenir développeur Java. Le cours est conçu pour vous donner une longueur d'avance dans la programmation Java et vous former aux concepts Java de base et avancés ainsi qu'à divers frameworks Java tels que Hibernate et Spring.

Vous avez une question pour nous? Veuillez le mentionner dans la section commentaires de cet article «Tutoriel Struts 2» et nous vous répondrons dans les plus brefs délais.