Jakarta Struts: Un framework MVC Overview, Installazione e Setup. Struts versione 1.2 . Core  Servlets & JSP book: www.coreservlets.com More  Servlets & JSP book: www.moreservlets.com Servlet/JSP/Struts/JSF Training: courses.coreservlets.com Traduzione a cura di JavaStaff.com
Agenda Capire Struts Differenti punti di vista di Struts Vantaggi di Struts Svantaggi di Struts Setup di Struts Scaricare e configurare Struts 1.2 Testare Struts Effettuare il setup di applicationi Struts Accedere alla documentazione di Struts Aggiungere Struts ad una Web application esistente
Cosa è Apache Struts? Un framework MVC? Struts fornisce un framework unificato per il deploy di applicazioni JSP/Servlet che usano l’architettura MVC.  Una collezione di utilities? Struts fornisce classi d’utilità per gestire la maggior parte dei compiti nello sviluppo di applicazioni Web Un insieme di librerie JSP Custom Tag? Struts fornisce delle librerie custom tag per gestire le proprietà dei bean, generare form HTML, iterare sui vari tipi di strutture dati e generare HTML.  Come bisogna considerare Struts? La risposta dipende dal modo in cui viene utilizzato, ma un framework MVC è il miglior modo di definire Struts.
Configurazione centralizzata su file Piuttosto che inserire le informazioni direttamente nei programmi Java, molti valori di Struts sono rappresentati su file XML o properties. Questo basso accoppiamento permette di effettuare cambiamenti senza modificare o ricompilare il codice Java e la maggiorparte dei cambiamenti può essere fatto editando un singolo file. Questo approccio agli sviluppatori Java e Web di focalizzarsi su task differenti (implementare la business logic, presentare determinati valori ai clienti etc.) senza il bisogno di avere informazioni su tutto il sistema.  Form beans Nelle JSP, potete utilizzare la property="*" con jsp:setProperty per popolare automaticamente un componente JavaBean basato sui parametri della request. Apache Struts estende questa possibilità al codice Java e aggiunge molte utilities le quali servono tutte a semplificare enormemente il processamento dei parametri della request.  Bean tags Apache Struts fornisce una serie di tag custom JSP (bean:write, in particolare) che permette di fare l’output delle proprietà dei componenti JavaBeans. Queste sono semplicemente delle modifice più potenti dei standard tag jsp:useBean e jsp:getProperty.  Vantaggi di Struts
Vantaggi di Struts/2 Tag HTML Apache Struts fornisce un insieme di custom JSP tag per creare form HTML che sono associate con componenti JavaBeans. Questa associazione bean/form association è utile per due scopi:  Ti permette di avere valori di default di una form da oggetti Java.  Ti permette di visualizzare nuovamente delle form con tutti (o qualcuno, dipende da come viene utilizzato) i valori inseriti prcedentemente.  Validazione dei campi della form Apache Struts ha la possibilità di controllare che i valori di una form siano nel formato richiesto. Se i valori mancano o sono in un formato sbagliato, la form può essere rivisualizzata automaticamente con i messaggi d’errore e con i valori precedentemente inseriti. Questa validazione può essere effettuata lato server (in Java) o sia sul server che sul client (in JavaScript).   Approccio MVC Struts incoraggia l’uso coerente di MVC nella vostra applicazione.
Svantaggi of Struts Alta curva di apprendimento Per utilizzare l’MVC con il classico RequestDispatcher, dovete conoscere bene JSP e Servlet. Per utilizzare l’MVC con Struts, dovete conoscere JSP, Servlet ed un framework abbastanza grande. Questo sforzo in più viene pesato ancora di più nei progetti piccoli, vicino alle consegne e con sviluppatori poco esperti; potete spendere lo stesso tempo ad imparare Struts che a costruire la vostra applicazione.  Peggiore documentazione Rispetto alle API di JSP e Servlet, Struts ha meno risorse online e molti utenti alle prime armi trovano molto confusionaria la documentazione di Apache. Ci sono meno libri su Apache Struts che su JSP e Servlet.
Svantaggi di Struts/2 Meno trasparente Con le applicazioni Struts, ci sonomolte cose che funzionano dietro le scene rispetto ad una normale applicazione Web Java. Come risultato, le applicazioni Struts sono:  Più difficili da capire Più difficili da testare ed ottimizzare Approccio rigido Struts incoraggia l’uso di MVC ma rendere difficile qualsiasi altro approccio.
Vantaggi di JSF (rispetto a Struts) Componenti custom JSF permette in maniera relativamente semplice di combinare GUI complesse in un singolo componente che può essere gestito; Struts invece no Supporto per altre tecnologie JSF non è limitato ad HTML e HTTP; Struts lo è Accesso ai bean tramite il nome JSF permette di assegnare un nome ai bean, per referenziarli nelle form. Struts a un processo complesso con diversi livelli di indirezione dove c’è bisogno di ricordarsi quale form è l’input per quale azione. Expression language L’expression language di JSF è più conciso e potente del tag di Struts bean:write.
Vantaggi di JSF (rispetto a Struts)/2 Definizione più semplice del controller e dei bean JSF non richiede che il controller e i bean estendano particolari classi o che usino particolari metodi. Struts invece si. File di configurazione e struttura più semplice Il file faces-config.xml è molto più semplice da utilizzare rispetto a struts-config.xml. In generale, JSF è più semplice. Più tool di supporto L’orientamento verso i controlli GUI e I loro handler apre possibilità verso IDE drag-and-drop
Svantaggi di JSF (rispetto a Struts) Standard tra sviluppatori Struts è affermato per un gran numero di sviluppatori e IT manager; JSF no. Supporto per altre tecnologie JSF non è limitato all’HTML e HTTP; Struts invece si Hey! Non avevo detto che era un vantaggio di JSF? Confusione nei nomi dei file Le pagine utilizzate in JSF finiscono per  .jsp.  Ma gli URL finiscono per  .faces  or  .jsf.  Questo causa diversi problemi; in particolare in JSF Non è possibile effettuare il browsing di directory e cliccare sui link E’ difficile proteggere le pagine JSP dall’accesso E’ difficile riferirsi a pagine non JSF nel faces-config.xml Approccio Self-submit Con Struts, la form (blah .jsp ) e l’handler (blah .do ) hanno URL differenti; con JSF sono gli stessi. Molti sviluppatori lo trovano strano.
Svantaggi di JSF (rispetto a Struts)/2 Meno supporto nei tool attuali Struts è supportato da molti IDE; JSF non ancora Niente di equivalente alle Tiles Struts ha una potente gestione del; JSF no Ma potete estrarre le Tiles da Struts e utilizzarle con JSF Validazione più debole Struts ha dei validatori per gli indirizzi email, carte di credito, espressioni regolari e molto altro. JSF ha solo dei validatori per i valori che mancano, la lunghezza dell’input e i numeri in un certo range. Ma MyFaces ha diversi potenti validatori E’ possibile utilizzare Struts/Commons validation library con JSF Mancanza di validazione lato client Struts supporta la validazione JavaScript-based; JSF no Installazione peggiore Struts ha l’applicazione the struts-blank da utilizzare come punto di partenza; JSF non ha niente di simile
Scaricare e configurare Struts Scaricare il file zip di Struts Andate su http://jakarta.apache.org/site/binindex.cgi, o seguite il link da http://jakarta.apache.org/struts/.  Decomprimete dentro una directory qualsiasi Per esempio, unzippate dentro C:\jakarta-struts-1.2.4. Mi riferirò a questo indirizzo con  struts_install_dir .  Aggiornate il vostro CLASSPATH Aggiungete  struts_install_dir /lib/struts.jar al CLASSPATH utilizzato dal vostro compilatore o IDE (non il vostro server).  Installate un parser XML Se avete il JDK 1.4 o Apache Tomcat, questo passo non è necessario , visto che è già presente un parser XML. Se usate il JDK 1.2 or 1.3 con un server diverso, dovete ottenere delle librerie per il parsing dell’XML. Ecco due buone risorse:  http://xml.apache.org/  http://java.sun.com/xml/
Testare Struts Installate struts-blank.war. Installate la Web application da  struts_install_dir /webapps/struts-blank.war nel vostro server. Per esempio, con Apache Tomcat, copiate  struts_install_dir /webapps/struts-blank.war in  tomcat_install_dir /webapps/.  Start o restart del server. La maggiorparte dei server riconoscono le applicazioni solo quando vengono avviati.  Accedete a http://localhost/struts-blank/. Questo URL presume che è avviato un server sul vostro pc e che sta utilizzando la porta 80. In generale, accedete a http:// hostname : port /struts-blank/.
Testare Struts (Risultati)
Setup di applicazioni Struts Opzione 1 (Buona): Copiate/rinominate la directory struts-blank nella vostra directory di sviluppo. Quanto testate la vostra installazione di Struts, avviate l’applicazione struts-blank. Quando fate ciò, Tomcat e la maggiorparte dei server estraggono il file struts-blank.war nella directory struts-blank. Copiate quindi questa directory e rinominatela in quello che volete.  Per esempio, se utilizzateTomcat e C:\Servlets+JSP è la directory che utilizzate per lo sviluppo, copiate la dirctory  tomcat_install_dir /webapps/struts-blank in C:\Servlets+JSP, rinominatela in struts-test.  Nota:  il file index.jsp in struts-blank deve essere sostituito con la vostra versione.
Setup di applicazioni Struts/2 Opzione 2 (Buona): Estraete struts-blank.war nella vostra directory di sviluppo. Se il vostro server non esplode automaticamente I file WAR, anche se avviate l’applicazione struts-blank spiegata precedentemente, non avrete nessuna cartella con cui lavorare. Alcune persone preferiscono estrarre il file WAR da soli. Per fare ciò:  Copiate struts_install_dir/webapps/struts-blank.war nella vostra directory di sviluppo.  Create una nuova directory (chiamatela ad esempio struts-test).  Unzippate struts-blank.war in questa directory. Potete utilizzare il comando jar -xvf o un programma zip standard come WinZip.  Quando volete testare la vostra applicazione, copiate la cartella struts-test nella directory di autodeploy del vostro server Ricordatevi di sostituire il file index.jsp che è dentro struts-blank
Setup di applicazioni Struts/3 Opzione 3 (Non buona): Renominare struts-blank e lasciarlo nella directory del server. E’ comune lavorare direttamente nella directory di deployment del server (e.g.,  tomcat_install_dir /webapps/struts-test). Tuttiava questo approccio di adatta poco alle applicazioni reali, rende più difficile testare i cambiamenti e non supporta il vostro vero server di deployment. Se non avete un buon sistema di deployment utilizzando il vostro IDE o script ant, potete semplicemente creare un collegamento (Windows) o un link simbolico (Unix/Linux) alla directory di autodeploy del vostro server e copiare l’applicazione ogni volta.
Accedere alla documentazione di Struts Leggerla da una copia locale Questo è il metodo più veloce, ma la documentazione può diventare vecchia. Per leggere in locale la documentazione basta installare l’applicazione struts-documentation.war. Copiate il file  struts_install_dir /webapps/struts-documentation.war in  tomcat_install_dir /webapps, riavviate il server e andate con il browser sull’URL  http://localhost/struts-documentation/ .  Leggerla dal sito di Apache Questa opzione è più lenta, ma vi garantisce l’ultima versione relativa alla documentazione. L’URL di riferimento è (per la versione 1.2.8)  http://struts.apache.org/struts-doc-1.2.8/ .  La documentazione include FAQ, guide utente, tutorial e le API nel formato Javadoc.
Aggiungere Struts ad un’applicazione esistente Copiate i file nella vostra Web app Copiate i file JAR da struts-blank/WEB-INF/lib a vostra_web_app/WEB-INF/lib.  Copiate i file TLD da struts-blank/WEB-INF a vostra_web_app/WEB-INF.  Copiate struts-config.xml da struts-blank/WEB-INF a vostra_web_app/WEB-INF.  Copiate il file properties dell’applicazione da struts-blank/WEB-INF/classes/resources a your_web_app/WEB-INF/classes/resources.  Se pensate di utilizzare un validatore automatico (spiegato in lezioni successive), copiate validation.xml e validator-rules.xml da struts-blank/WEB-INF a vostra_web_app/WEB-INF.  Se pensate di utilizzare Tiles (spiegato in lezioni successive), copiate struts-tiles.xml da struts-blank/WEB-INF a vostra_web_app/WEB-INF.  Aggiornare il file web.xml Copiate le dichiarazioni del file struts-blank/WEB-INF/web.xml in vostra_web_app/WEB-INF/web.xml. La cosa più importante è copiare le entry riguardanti servlet e servlet-mapping, che mappano il pattern *.do sulla servlet org.apache.struts.action.ActionServlet.
Siti con Struts: Viaggi
Siti con Struts: Governo
Siti con Struts: Commerciali
Sommario Struts è un framework MVC Ed è anche una collezione di utilities e di librerie custom tag Struts ha dei vantaggi significativi, ma introduce anche una complessità Bisogna comparare l’uso di Struts con il normale MVC (specialmente con l’expression language di JSP 2.0) Bisogna considerare anche altri framework, specialmente JavaServer Faces (JSF). Struts è molto usato E’ possibile testarlo utilizzando l’applicazione di default struts-blank.war E’ possibile sviluppare copiando la directory struts-blank Non partire da niente; servono troppi cambiamenti nella tuaWeb app

More Related Content

PPT
Java lezione 17
PPT
Java lezione 18
ODP
SCBCD 1. generic ejb
PDF
Modulo 6 Spring Framework Core E Aop
PDF
SPRING - MAVEN - REST API (ITA - Luglio 2017)
PDF
Spring Intro
ODP
Spring Framework
PPT
J2EE 5 - Esempio Carrello Elettronico
Java lezione 17
Java lezione 18
SCBCD 1. generic ejb
Modulo 6 Spring Framework Core E Aop
SPRING - MAVEN - REST API (ITA - Luglio 2017)
Spring Intro
Spring Framework
J2EE 5 - Esempio Carrello Elettronico

What's hot (18)

PDF
Java Spring Basics - Donato Andrisani - Gabriele Manfredi
PDF
Modern web development with python and Web2py
PPT
Spring 2.5
PDF
Spring @Aspect e @Controller
PDF
Tech Webinar: Test e2e per AngularJS e non solo
PDF
Closure Visto Da Vicino
PPTX
Spring - Ecosistema
PPTX
Tesi3
PDF
TDD in WordPress
PDF
Progetto SOD Davide Sito
PPT
#dd12 grillo daniele_xpages_tips_tricks_rev2
PPTX
Xamarin.android
PDF
Laravel Framework PHP
PDF
Laravel 7 REST API
PDF
Introduzione a Struts
PPTX
Il buon programmatore - consigli pratici per una vita felice
PDF
ORM Java - Hibernate
PDF
Un backend per tutte le stagioni con Spring
Java Spring Basics - Donato Andrisani - Gabriele Manfredi
Modern web development with python and Web2py
Spring 2.5
Spring @Aspect e @Controller
Tech Webinar: Test e2e per AngularJS e non solo
Closure Visto Da Vicino
Spring - Ecosistema
Tesi3
TDD in WordPress
Progetto SOD Davide Sito
#dd12 grillo daniele_xpages_tips_tricks_rev2
Xamarin.android
Laravel Framework PHP
Laravel 7 REST API
Introduzione a Struts
Il buon programmatore - consigli pratici per una vita felice
ORM Java - Hibernate
Un backend per tutte le stagioni con Spring
Ad

Viewers also liked (9)

PPT
Clubkampioenschap 2006
PPT
Hollandse Avond 2006
PPT
Sluiting Byblos 2006
PDF
20070530 Haagsche Hogeschool
PPS
Retraite!!!
PPT
Presentación en ingles del centro
PPT
Cálculo de Áreas
PPT
Pharmacy Global Track(s)
PPT
Black Dragon
Clubkampioenschap 2006
Hollandse Avond 2006
Sluiting Byblos 2006
20070530 Haagsche Hogeschool
Retraite!!!
Presentación en ingles del centro
Cálculo de Áreas
Pharmacy Global Track(s)
Black Dragon
Ad

Similar to Struts - Overview, Installazione e Setup (20)

PDF
Struttin' on, novità in casa Struts
PPT
Jakarta Struts
PPT
JAMP DAY 2010 - ROMA (1)
PPTX
ASP.NET performance optimization
ODP
Many Designs Elements
PPT
ODP
Working between the clouds (versione completa)
PPTX
Asp.net 4 Community Tour VS2010
ODP
Seam unifies Java EE by Massimiliano Ciccazzo
ODP
April 2010 - Seam unifies JEE5
PDF
Liferay - Quick Start 1° Episodio
PPT
Presentazione Corso - Parte 3
PDF
Visual Studio Performance Tools
PDF
Joomla! 1.5: CMS a mani tese verso gli sviluppatori
PDF
Joomla! 1.5: CMS a mani tese verso gli sviluppatori
PPTX
Novità di Asp.Net 4.0
PPTX
Wcf data services
PPT
Introduzione a JavaScript e jQuery (1/2)
PPTX
Webcast - Introduzione a Visual Studio Online
PPTX
Database under source control
Struttin' on, novità in casa Struts
Jakarta Struts
JAMP DAY 2010 - ROMA (1)
ASP.NET performance optimization
Many Designs Elements
Working between the clouds (versione completa)
Asp.net 4 Community Tour VS2010
Seam unifies Java EE by Massimiliano Ciccazzo
April 2010 - Seam unifies JEE5
Liferay - Quick Start 1° Episodio
Presentazione Corso - Parte 3
Visual Studio Performance Tools
Joomla! 1.5: CMS a mani tese verso gli sviluppatori
Joomla! 1.5: CMS a mani tese verso gli sviluppatori
Novità di Asp.Net 4.0
Wcf data services
Introduzione a JavaScript e jQuery (1/2)
Webcast - Introduzione a Visual Studio Online
Database under source control

More from Federico Paparoni (8)

PDF
Preghierina
PDF
Statistics for DSpace at DSUG 2007
PPT
Intercettare gli eventi di mouse e tastiera
PPT
02 Struts Actions
PDF
Tutorial su JMS (Java Message Service)
PDF
Tutorial su Java RMI
PPT
Applicazioni native in java
PPT
Initial proposal for DSpace statistics application
Preghierina
Statistics for DSpace at DSUG 2007
Intercettare gli eventi di mouse e tastiera
02 Struts Actions
Tutorial su JMS (Java Message Service)
Tutorial su Java RMI
Applicazioni native in java
Initial proposal for DSpace statistics application

Struts - Overview, Installazione e Setup

  • 1. Jakarta Struts: Un framework MVC Overview, Installazione e Setup. Struts versione 1.2 . Core Servlets & JSP book: www.coreservlets.com More Servlets & JSP book: www.moreservlets.com Servlet/JSP/Struts/JSF Training: courses.coreservlets.com Traduzione a cura di JavaStaff.com
  • 2. Agenda Capire Struts Differenti punti di vista di Struts Vantaggi di Struts Svantaggi di Struts Setup di Struts Scaricare e configurare Struts 1.2 Testare Struts Effettuare il setup di applicationi Struts Accedere alla documentazione di Struts Aggiungere Struts ad una Web application esistente
  • 3. Cosa è Apache Struts? Un framework MVC? Struts fornisce un framework unificato per il deploy di applicazioni JSP/Servlet che usano l’architettura MVC. Una collezione di utilities? Struts fornisce classi d’utilità per gestire la maggior parte dei compiti nello sviluppo di applicazioni Web Un insieme di librerie JSP Custom Tag? Struts fornisce delle librerie custom tag per gestire le proprietà dei bean, generare form HTML, iterare sui vari tipi di strutture dati e generare HTML. Come bisogna considerare Struts? La risposta dipende dal modo in cui viene utilizzato, ma un framework MVC è il miglior modo di definire Struts.
  • 4. Configurazione centralizzata su file Piuttosto che inserire le informazioni direttamente nei programmi Java, molti valori di Struts sono rappresentati su file XML o properties. Questo basso accoppiamento permette di effettuare cambiamenti senza modificare o ricompilare il codice Java e la maggiorparte dei cambiamenti può essere fatto editando un singolo file. Questo approccio agli sviluppatori Java e Web di focalizzarsi su task differenti (implementare la business logic, presentare determinati valori ai clienti etc.) senza il bisogno di avere informazioni su tutto il sistema. Form beans Nelle JSP, potete utilizzare la property="*" con jsp:setProperty per popolare automaticamente un componente JavaBean basato sui parametri della request. Apache Struts estende questa possibilità al codice Java e aggiunge molte utilities le quali servono tutte a semplificare enormemente il processamento dei parametri della request. Bean tags Apache Struts fornisce una serie di tag custom JSP (bean:write, in particolare) che permette di fare l’output delle proprietà dei componenti JavaBeans. Queste sono semplicemente delle modifice più potenti dei standard tag jsp:useBean e jsp:getProperty. Vantaggi di Struts
  • 5. Vantaggi di Struts/2 Tag HTML Apache Struts fornisce un insieme di custom JSP tag per creare form HTML che sono associate con componenti JavaBeans. Questa associazione bean/form association è utile per due scopi: Ti permette di avere valori di default di una form da oggetti Java. Ti permette di visualizzare nuovamente delle form con tutti (o qualcuno, dipende da come viene utilizzato) i valori inseriti prcedentemente. Validazione dei campi della form Apache Struts ha la possibilità di controllare che i valori di una form siano nel formato richiesto. Se i valori mancano o sono in un formato sbagliato, la form può essere rivisualizzata automaticamente con i messaggi d’errore e con i valori precedentemente inseriti. Questa validazione può essere effettuata lato server (in Java) o sia sul server che sul client (in JavaScript). Approccio MVC Struts incoraggia l’uso coerente di MVC nella vostra applicazione.
  • 6. Svantaggi of Struts Alta curva di apprendimento Per utilizzare l’MVC con il classico RequestDispatcher, dovete conoscere bene JSP e Servlet. Per utilizzare l’MVC con Struts, dovete conoscere JSP, Servlet ed un framework abbastanza grande. Questo sforzo in più viene pesato ancora di più nei progetti piccoli, vicino alle consegne e con sviluppatori poco esperti; potete spendere lo stesso tempo ad imparare Struts che a costruire la vostra applicazione. Peggiore documentazione Rispetto alle API di JSP e Servlet, Struts ha meno risorse online e molti utenti alle prime armi trovano molto confusionaria la documentazione di Apache. Ci sono meno libri su Apache Struts che su JSP e Servlet.
  • 7. Svantaggi di Struts/2 Meno trasparente Con le applicazioni Struts, ci sonomolte cose che funzionano dietro le scene rispetto ad una normale applicazione Web Java. Come risultato, le applicazioni Struts sono: Più difficili da capire Più difficili da testare ed ottimizzare Approccio rigido Struts incoraggia l’uso di MVC ma rendere difficile qualsiasi altro approccio.
  • 8. Vantaggi di JSF (rispetto a Struts) Componenti custom JSF permette in maniera relativamente semplice di combinare GUI complesse in un singolo componente che può essere gestito; Struts invece no Supporto per altre tecnologie JSF non è limitato ad HTML e HTTP; Struts lo è Accesso ai bean tramite il nome JSF permette di assegnare un nome ai bean, per referenziarli nelle form. Struts a un processo complesso con diversi livelli di indirezione dove c’è bisogno di ricordarsi quale form è l’input per quale azione. Expression language L’expression language di JSF è più conciso e potente del tag di Struts bean:write.
  • 9. Vantaggi di JSF (rispetto a Struts)/2 Definizione più semplice del controller e dei bean JSF non richiede che il controller e i bean estendano particolari classi o che usino particolari metodi. Struts invece si. File di configurazione e struttura più semplice Il file faces-config.xml è molto più semplice da utilizzare rispetto a struts-config.xml. In generale, JSF è più semplice. Più tool di supporto L’orientamento verso i controlli GUI e I loro handler apre possibilità verso IDE drag-and-drop
  • 10. Svantaggi di JSF (rispetto a Struts) Standard tra sviluppatori Struts è affermato per un gran numero di sviluppatori e IT manager; JSF no. Supporto per altre tecnologie JSF non è limitato all’HTML e HTTP; Struts invece si Hey! Non avevo detto che era un vantaggio di JSF? Confusione nei nomi dei file Le pagine utilizzate in JSF finiscono per .jsp. Ma gli URL finiscono per .faces or .jsf. Questo causa diversi problemi; in particolare in JSF Non è possibile effettuare il browsing di directory e cliccare sui link E’ difficile proteggere le pagine JSP dall’accesso E’ difficile riferirsi a pagine non JSF nel faces-config.xml Approccio Self-submit Con Struts, la form (blah .jsp ) e l’handler (blah .do ) hanno URL differenti; con JSF sono gli stessi. Molti sviluppatori lo trovano strano.
  • 11. Svantaggi di JSF (rispetto a Struts)/2 Meno supporto nei tool attuali Struts è supportato da molti IDE; JSF non ancora Niente di equivalente alle Tiles Struts ha una potente gestione del; JSF no Ma potete estrarre le Tiles da Struts e utilizzarle con JSF Validazione più debole Struts ha dei validatori per gli indirizzi email, carte di credito, espressioni regolari e molto altro. JSF ha solo dei validatori per i valori che mancano, la lunghezza dell’input e i numeri in un certo range. Ma MyFaces ha diversi potenti validatori E’ possibile utilizzare Struts/Commons validation library con JSF Mancanza di validazione lato client Struts supporta la validazione JavaScript-based; JSF no Installazione peggiore Struts ha l’applicazione the struts-blank da utilizzare come punto di partenza; JSF non ha niente di simile
  • 12. Scaricare e configurare Struts Scaricare il file zip di Struts Andate su http://jakarta.apache.org/site/binindex.cgi, o seguite il link da http://jakarta.apache.org/struts/. Decomprimete dentro una directory qualsiasi Per esempio, unzippate dentro C:\jakarta-struts-1.2.4. Mi riferirò a questo indirizzo con struts_install_dir . Aggiornate il vostro CLASSPATH Aggiungete struts_install_dir /lib/struts.jar al CLASSPATH utilizzato dal vostro compilatore o IDE (non il vostro server). Installate un parser XML Se avete il JDK 1.4 o Apache Tomcat, questo passo non è necessario , visto che è già presente un parser XML. Se usate il JDK 1.2 or 1.3 con un server diverso, dovete ottenere delle librerie per il parsing dell’XML. Ecco due buone risorse: http://xml.apache.org/ http://java.sun.com/xml/
  • 13. Testare Struts Installate struts-blank.war. Installate la Web application da struts_install_dir /webapps/struts-blank.war nel vostro server. Per esempio, con Apache Tomcat, copiate struts_install_dir /webapps/struts-blank.war in tomcat_install_dir /webapps/. Start o restart del server. La maggiorparte dei server riconoscono le applicazioni solo quando vengono avviati. Accedete a http://localhost/struts-blank/. Questo URL presume che è avviato un server sul vostro pc e che sta utilizzando la porta 80. In generale, accedete a http:// hostname : port /struts-blank/.
  • 15. Setup di applicazioni Struts Opzione 1 (Buona): Copiate/rinominate la directory struts-blank nella vostra directory di sviluppo. Quanto testate la vostra installazione di Struts, avviate l’applicazione struts-blank. Quando fate ciò, Tomcat e la maggiorparte dei server estraggono il file struts-blank.war nella directory struts-blank. Copiate quindi questa directory e rinominatela in quello che volete. Per esempio, se utilizzateTomcat e C:\Servlets+JSP è la directory che utilizzate per lo sviluppo, copiate la dirctory tomcat_install_dir /webapps/struts-blank in C:\Servlets+JSP, rinominatela in struts-test. Nota: il file index.jsp in struts-blank deve essere sostituito con la vostra versione.
  • 16. Setup di applicazioni Struts/2 Opzione 2 (Buona): Estraete struts-blank.war nella vostra directory di sviluppo. Se il vostro server non esplode automaticamente I file WAR, anche se avviate l’applicazione struts-blank spiegata precedentemente, non avrete nessuna cartella con cui lavorare. Alcune persone preferiscono estrarre il file WAR da soli. Per fare ciò: Copiate struts_install_dir/webapps/struts-blank.war nella vostra directory di sviluppo. Create una nuova directory (chiamatela ad esempio struts-test). Unzippate struts-blank.war in questa directory. Potete utilizzare il comando jar -xvf o un programma zip standard come WinZip. Quando volete testare la vostra applicazione, copiate la cartella struts-test nella directory di autodeploy del vostro server Ricordatevi di sostituire il file index.jsp che è dentro struts-blank
  • 17. Setup di applicazioni Struts/3 Opzione 3 (Non buona): Renominare struts-blank e lasciarlo nella directory del server. E’ comune lavorare direttamente nella directory di deployment del server (e.g., tomcat_install_dir /webapps/struts-test). Tuttiava questo approccio di adatta poco alle applicazioni reali, rende più difficile testare i cambiamenti e non supporta il vostro vero server di deployment. Se non avete un buon sistema di deployment utilizzando il vostro IDE o script ant, potete semplicemente creare un collegamento (Windows) o un link simbolico (Unix/Linux) alla directory di autodeploy del vostro server e copiare l’applicazione ogni volta.
  • 18. Accedere alla documentazione di Struts Leggerla da una copia locale Questo è il metodo più veloce, ma la documentazione può diventare vecchia. Per leggere in locale la documentazione basta installare l’applicazione struts-documentation.war. Copiate il file struts_install_dir /webapps/struts-documentation.war in tomcat_install_dir /webapps, riavviate il server e andate con il browser sull’URL http://localhost/struts-documentation/ . Leggerla dal sito di Apache Questa opzione è più lenta, ma vi garantisce l’ultima versione relativa alla documentazione. L’URL di riferimento è (per la versione 1.2.8) http://struts.apache.org/struts-doc-1.2.8/ . La documentazione include FAQ, guide utente, tutorial e le API nel formato Javadoc.
  • 19. Aggiungere Struts ad un’applicazione esistente Copiate i file nella vostra Web app Copiate i file JAR da struts-blank/WEB-INF/lib a vostra_web_app/WEB-INF/lib. Copiate i file TLD da struts-blank/WEB-INF a vostra_web_app/WEB-INF. Copiate struts-config.xml da struts-blank/WEB-INF a vostra_web_app/WEB-INF. Copiate il file properties dell’applicazione da struts-blank/WEB-INF/classes/resources a your_web_app/WEB-INF/classes/resources. Se pensate di utilizzare un validatore automatico (spiegato in lezioni successive), copiate validation.xml e validator-rules.xml da struts-blank/WEB-INF a vostra_web_app/WEB-INF. Se pensate di utilizzare Tiles (spiegato in lezioni successive), copiate struts-tiles.xml da struts-blank/WEB-INF a vostra_web_app/WEB-INF. Aggiornare il file web.xml Copiate le dichiarazioni del file struts-blank/WEB-INF/web.xml in vostra_web_app/WEB-INF/web.xml. La cosa più importante è copiare le entry riguardanti servlet e servlet-mapping, che mappano il pattern *.do sulla servlet org.apache.struts.action.ActionServlet.
  • 21. Siti con Struts: Governo
  • 22. Siti con Struts: Commerciali
  • 23. Sommario Struts è un framework MVC Ed è anche una collezione di utilities e di librerie custom tag Struts ha dei vantaggi significativi, ma introduce anche una complessità Bisogna comparare l’uso di Struts con il normale MVC (specialmente con l’expression language di JSP 2.0) Bisogna considerare anche altri framework, specialmente JavaServer Faces (JSF). Struts è molto usato E’ possibile testarlo utilizzando l’applicazione di default struts-blank.war E’ possibile sviluppare copiando la directory struts-blank Non partire da niente; servono troppi cambiamenti nella tuaWeb app