Struts 2 - Architecture

De haut niveau, Struts2 est un framework pull-MVC (ou MVC2). Le modèle Model-ViewController dans Struts2 est implémenté avec les cinq composants principaux suivants:

  • Actions
  • Interceptors
  • Value Stack / OGNL
  • Résultats / types de résultats
  • Voir les technologies

Struts 2 est légèrement différent d'un framework MVC traditionnel, où l'action prend le rôle de modèle plutôt que de contrôleur, bien qu'il y ait un certain chevauchement.

Le diagramme ci-dessus illustre le Model, View et Controller à l'architecture de haut niveau Struts2. Le contrôleur est implémenté avec unStruts2répartir le filtre de servlet ainsi que les intercepteurs, ce modèle est implémenté avec des actions, et la vue est une combinaison de types de résultats et de résultats. La pile de valeurs et OGNL fournissent un fil conducteur, reliant et permettant l'intégration entre les autres composants.

Outre les composants ci-dessus, il y aura de nombreuses informations relatives à la configuration. Configuration de l'application Web, ainsi que configuration des actions, intercepteurs, résultats, etc.

Voici la présentation architecturale du modèle Struts 2 MVC. Nous passerons en revue chaque composant plus en détail dans les chapitres suivants.

Demander le cycle de vie

Sur la base du diagramme ci-dessus, vous pouvez comprendre le flux de travail tout au long du cycle de vie de la demande de l'utilisateur dans Struts 2 comme suit -

  • L'utilisateur envoie une demande au serveur pour demander une ressource (c'est-à-dire des pages).

  • Le répartiteur de filtres examine la demande, puis détermine l'action appropriée.

  • Les fonctionnalités d'interception configurées s'appliquent telles que la validation, le téléchargement de fichiers, etc.

  • L'action sélectionnée est exécutée en fonction de l'opération demandée.

  • Là encore, des intercepteurs configurés sont appliqués pour effectuer tout post-traitement si nécessaire.

  • Enfin, le résultat est préparé par la vue et renvoie le résultat à l'utilisateur.