| Apache Struts software | |
|---|---|
| Genere | Framework per applicazioni web |
| Sviluppatore | Apache Software Foundation |
| Data prima versione | 10 ottobre 2006 e 11 aprile 2014 |
| Ultima versione | 7.1.1 (1º ottobre 2025) |
| Sistema operativo | Multipiattaforma |
| Linguaggio | Java |
| Licenza | Apache License 2.0 (licenza libera) |
| Sito web | struts.apache.org/ |
| Modifica dati su Wikidata ·Manuale | |
IninformaticaApache Struts è unframeworkopen source per lo sviluppo diapplicazioni web supiattaformaJava EE. Inizialmente sviluppato come sotto-progetto diApache Jakarta, ma ora divenuto un progetto a sé, estende le JavaServlet, incoraggiando gli sviluppatori all'utilizzo deldesign patternModel-View-Controller (MVC). Il suo ideatore èCraig McClanahan ed è stato donato allaApache Software Foundation nel maggio del 2000 da parte diIBM.
L'utilizzo di Struts permette lo sviluppo diweb application di notevoli dimensioni; inoltre agevola la suddivisione dello sviluppo del progetto fra vari sotto-team. In altre parole, iweb designer, e i vari gruppi di sviluppatori possono gestire in parallelo e autonomamente la loro parte del progetto. Tra le funzionalità offerte c'è lai18N, ossia l'internazionalizzazione, una potentetag library e la validazione deiform.
Il framework diStruts è un insieme diclassi edinterfacce che costituiscono l'infrastruttura per costruireWeb Application Java EE conformi al design pattern MVC. Questo framework gestisce tutte le richiesteclient e smista il flusso applicativo in base alla logica configurata. Si potrebbe definire come la “spina dorsale” di una applicazione che adotta tale framework.
Tutta la configurazione dell'applicazione è contenuta all'interno di uno specificofileXML che viene letto in fase di start-up dell'applicazione e definisce le associazioni tra i vari sottoelementi che compongono il sistema. Sono di seguito descritti i vantaggi di cui beneficia un'applicazione realizzata con il supporto del framework Struts.
A differenza di quanto avveniva utilizzando ilJSP Model 1, è possibile sviluppare in parallelo le varie parti dell'applicazione, view (JSP/HTML) elogica di business (Java) sfruttando al meglio le conoscenze dei componenti del team di sviluppo. Si possono utilizzare sviluppatori meno esperti e anche con poche conoscenze diJava per la realizzazione delleview, permettendo agli sviluppatori Java più esperti di concentrarsi sulla realizzazione dellabusiness logic. La versione 2.0 di Struts (Struts2) garantisce un'ulteriore riduzione dei tempi di sviluppo grazie ad un'ulteriore semplificazione della logica e della corrispettiva implementazione del framework.
L'applicazione è costituita da livelli logici ben distinti. Una modifica in uno dei livelli non comporta modifiche negli altri. Ad esempio una modifica ad una pagina JSP non ha impatto sulla logica di controllo o sulla logica di business.
I diversi ruoli dell'applicazione sono affidati a diversi componenti. Ciò consente di sviluppare codicemodulare e più facilmente riutilizzabile.
Per quanto riguarda il livello presentazione (laview del pattern MVC), Struts supporta diverse tecnologie, inclusiJSP,XML/XSLT,Java Server Faces (JSF),Cocoon,Swing (JFC) eVelocity. Struts permette la gestione dellainternazionalizzazione ("I18N") dei contenuti, in pratica permette la gestione centralizzata dei file contenenti le stringhe testuali da visualizzare in dipendenza alla lingua dichiarata dalbrowser.
Un'altra caratteristica è la gestione automatica delpool delle connessioni aldatabase, sollevando lo sviluppatore da tale incarico; ogni volta che bisogna accedere al database, si dichiara che è necessaria una connessione e il framework restituisce un handler alla connessione.
Per quanto riguarda il livello dimodellazione dei dati sono supportati iJavaBean eEJB. Struts lega i suoi componenti in base alle direttive contenute in un file XML, il filestruts-config.xml. In questo file vengono configurati i componenti e le interazioni fra gli stessi.
Anche se Struts è molto ben documentato, affidabile e diffuso, di recente vede la concorrenza di altri framework MVC più leggeri, comeSpring e Tapestry e di altri comeXWork e il più evolutoWebWork.
Altri progetti