Apache Struts
Template:Stub informatica Apache Struts è un framework open source per lo sviluppo di applicazioni web su piattaforma J2EE. Il progetto era inizialmente sviluppato come sotto-progetto di Apache Jakarta ma ora è divenuto un progetto a sé. Struts estende le Java Servlet, incoraggiando gli sviluppatori all'utilizzo del pattern Model-View-Controller. Il suo ideatore è Craig McClanahan ed è stato donato alla Apache Software Foundation nel maggio del 2000.
L'utilizzo di Struts permette lo sviluppo di web application di notevoli dimensioni; inoltre agevola la suddivisione dello sviluppo del progetto fra vari sotto-team. In altre parole, i designers, e i vari gruppi di sviluppatori possono gestire in parallelo e autonomamente la loro parte del progetto. Tra le funzionalità offerte c'è la I18N , ossia l'internazionalizzazione, una potente tag library e la validazione dei form.
Descrizione del Framework
Struts concentra la sua attenzione nella divisione dei compiti fra le varie entità che gestisce. In prima battuta possiamo dire che data una successione di pagine che bisogna visionare, Struts vincola l'ordine in cui queste devono essere visitate. Ad esempio, se un utente cerca di accedere ad una pagina che richiede un'autenticazione senza aver preventivamente fatto il log in, il framework lo ridirige verso il form di autenticazione. Inoltre Struts mette a disposizione dei metodi che agevolano la validazione dei dati; si assume anche il compito di verificare se un utente ha inserito tutti i campi in un form: se tutti i campi richiesti sono validi, l'azione prosegue altrimenti avverrà un reindirizzamento alla pagina di inserimento dei dati a cui verranno aggiunti dei messaggi (configurati dallo sviluppatore) che descrivono perché l'azione non è andata a buon fine.
Per quanto riguarda il livello presentazione (la view del pattern MVC), Struts supporta diverse tecnologie, inclusi JSP, XML/XSLT, Java Server Faces (JSF), Cocoon e Velocity. Struts permette la gestione della internazionalizzazione (in breve I18N) dei contenuti, in pratica permette la gestione centralizzata dei file contenenti le stringhe testuali da visualizzare in dipendenza alla lingua dichiarata dal browser.
Un'altra caratteristica è la gestion
e automatica del pool delle connessioni al database, 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 di modellazione dei dati sono supportati i JavaBean e EJB.
Struts lega i suoi componenti in base alle direttive contenute in un file XML, il file struts-config.xml. In questo file vengono configurati i componenti e le interazioni fra gli stessi.
Altri framework MVC
Anche se Struts è molto ben documentato, affidabile e diffuso, di recente vede la concorrenza di altri framework MVC più leggeri, come Spring e Tapestry.