Le framework Struts s’applique à structurer les échanges entre l’interface utilisateur et l’application proprement dite.
La notion de réutilisabilité s’appuie depuis longtemps sur la séparation des traitements et de la présentation. Mais l’exigence de dynamisme des applications web a souvent causé des entorses à ce dogme. Fréquemment, il est nécessaire d’incorporer du code fonctionnel au sein de fichiers initialement uniquement destinés à l’affichage. Sur des sites de plusieurs dizaines voire centaines de pages, une application conçue de cette manière s’avère rapidement très difficile à maintenir.Lançé en mai 2000 par Craig McClanahan dans le cadre du projet Jakarta de l’Apache Software Foundation (ASF), Struts est un framework “open source” regroupant les éléments nécessaires pour structurer le comportement de ces applications. Basé sur l’approche MVC (Modèle Vue Contrôleur) inauguré par le langage Smalltalk il y a trente ans, il s’appuie sur les technologies Java JSP (Java Server Pages) et Servlet. L’environnement Struts comprend quatre bibliothèques de “tags” pour faciliter la construction des pages web. Avec Struts, la partie “affichage” demeure bien découplée de la logique de l’application.Toutes les requêtes en provenance des navigateurs sont dirigées vers un composant contrôleur, un servlet qui va transmettre, en fonction d’une table de correspondance (ou fichier de configuration), les traitements à effectuer à des composants actifs. Ceux-ci, des Javabeans, vont traiter avec l’application à l’arrière-plan, récupérer les résultats et les transmettre à leur tour vers une page JSP qui sera finalement renvoyée au navigateur.