Requisiti:
IDE NetBeans (versione con Tomcat), librerie di Apache Struts 2.

La guida che segue propone la creazione di una semplice applicazione web “HelloWorld” con il framework di Struts 2.
Anche se Struts 2 è uscito ormai da alcuni anni non tutti conoscono le nuove caratteristiche che lo differenziano da Struts 1. Ad esempio le actions, che prima erano componenti dello strato business, nel nuovo Struts fanno parte invece del model e inglobano al loro interno le variabili e i metodi getter/setter dei vecchi ActionBeans.

Per cominciare scarichiamo la versione più recente delle librerie di Struts2, attualmente la versione aggiornata è struts-2.2.1.1-lib.zip, da questo indirizzo:
http://it.apache.contactlab.it//struts/library/

Se non avete Netbeans scaricate la versione adatta al vostro sistema operativo all’indirizzo:
https://netbeans.org/downloads/index.html

Io consiglierei di scaricare la versione che includa tutte le funzionalità di java e il server Tomcat.
Bene, ora che abbiamo quello che ci serve possiamo cominciare.

Avviamo Netbeans e creiamo una Web Application senza integrare nessuno dei framework presenti. Dal menù: File -> New Project -> Java Web -> Web Application

Immagine nuovo progetto NetBeans

diamo un nome all’applicazione in Project Name

Immagine impostazione nome progetto

clicchiamo su next e scegliamo il server che vogliamo usare, nel nostro caso Apache Tomcat

Immagine impostazione server Tomcat

Per comodità io consiglierei di creare una cartella nella root del progetto chiamandola my_libs e in cui andremo a copiare le librerie essenziali di Struts 2:

freemarker.jar
javassist.jar
commons-beanutils.jar
commons-chain.jar
commons-fileupload.jar
commons-io.jar
commons-lang.jar
commons-logging.jar
commons-validator.jar
ognl.jar
sruts2-core.jar
xwork.jar

NOTA: Ho scritto che si tratta di librerie essenziali perchè includono le funzionalità minime richieste per l’utilizzo di Struts 2. Se si vogliono includere altre funzionalità, ad esempio i tiles, vanno incluse altre librerie, sempre contenute nello zip prima scaricato.
Inoltre, come avrete notato, non indico la versione nel nome delle librerie perchè questa è variabile in base alla versione delle librerie scaricate, nel mio caso le più recenti attualmente sono racchiuse nel file struts-2.2.1.1-lib.zip, ma immagino che quando leggerete questo articolo avrete a disposizione già una nuova versione.

Immagine cartella my_libs

Ora le librerie che abbiamo messo in my_libs vanno importate nel progetto, quindi clicchiamo col destro sul nome dell’applicazione e selezioniamo “Properties”. Nella finestra che appare scegliamo “Libreries” e clicchiamo sul tasto “Add JAR/Folder”.

Immagine add libreries

Ripercorriamo il percorcorso del file system fino ad arrivare alla nostra cartella my_libs, apriamola, selezioniamo tutte le librerie in essa contenute e diamo ok.

Immagine selezione librerie

Ora passiamo alla modifica della servlet che si occuperà di instradare le richieste verso Struts 2, ossia il web.xml. Esplodiamo il menu “Configuration Files” all’interno del nostro progetto quindi apriamo il file web.xml.
Se questo non dovesse essere presente creiamolo all’interno della cartella WEB-INF. Clicchiamo col destro sulla cartella e selezioniamo New -> XML Document… Diamo il nome “web” quindi next e Finish.

NOTA:
Quando si crea un nuovo file in NetBeans non bisogna dare l’estensione (.java, .jsp, .xml) ma solo il nome in quanto l’estensione viene data dal programma in base alla tipologia specificata in fase di creazione.

Copiamo all’interno del file web.xml queste righe:


<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<display-name>TestApplication</display-name>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>

e scriviamo in “display-name” il nome della nostra applicazione.

Creiamo il file struts.xml nel source package con questo contenuto:

<?xml version=”1.0″ encoding=”UTF-8″?>
<!DOCTYPE struts PUBLIC
“-//Apache Software Foundation//DTD Struts Configuration 2.0//EN”
http://struts.apache.org/dtds/struts-2.0.dtd”&gt;

<struts><!– Configuration for the default package. –>
<package name=”default” extends=”struts-default”>
<action name=”HelloWorld”>
<result name=”success”>/welcome.jsp</result>
</action>
</package>
</struts>

Nel “Sources Package” creiamo un nuovo package “actions”. In “actions” creiamo la classe HelloWorld.java e al suo interno inseriamo questo codice:

package actions;
import com.opensymphony.xwork2.ActionSupport;
public class HelloWorld extends ActionSupport {
private String message;
private String userName;
public HelloWorld() {
}
public String execute() {
setMessage("Benvenuto " + getUserName() + "!");
return SUCCESS;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
}

Apriamo la index.jsp e copiamoci dentro questo codice:

<%@taglib uri="/struts-tags" prefix="s" %>
<html>
<head>
<title>Hello World</title>
</head>
<body>
<s:form action="HelloWorld" >
<s:textfield name="userName" label="Nome utente" />
<s:submit value="Invia"/>
</s:form>
</body>
</html>

Infine creiamo all’interno di “Web Pages” la pagina welcome.jsp con questo codice:

<%@taglib uri="/struts-tags" prefix="s" %>
<html>
<head>
<title>Hello World</title>
</head>
<body>
<h1><s:property value="message" /></h1>
</body>
</html>

Bene. Ora possiamo testare la nostra applicazione. Facciamo il build dell’applicazione e diamo il run.
Se tutto funziona bene si aprirà la pagina con il form. Scrivendo il nostro nome e dando invio questo sarà visualizzato nella pagina di benvenuto.

Immagine form utente
Immagine pagina benvenuto

La guida è stata creata integrando il tutorial:

struts-2-hello-world-example-1

Annunci