Requisiti:
IDE NetBeans, librerie di Apache Struts 2, libreria javassist, servlet container Tomcat o simili.
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 quasi quattro anni non tutti lo conoscono e in paricolare chi è abituato al vecchio Struts noterà non poche differenze molto significative. 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 il file struts-2.2.1.1-lib.zip, che contiene tutte le librerie di Struts 2, da questo indirizzo:
http://it.apache.contactlab.it//struts/library/
Avviamo Netbeans e creiamo una Web Application senza integrare nessuno dei framework presenti. Dal menù: File -> New Project -> Java Web -> Web Application
diamo un nome all’applicazione in Project Name
clicchiamo su next e scegliamo il server che vogliamo usare, ad esempio Apache Tomcat
Per comodità io consiglierei di creare una cartella nella root del progetto che chiameremo my_libs in cui andremo a copiare le librerie essenziali di Struts 2:
sruts2-core.jar
xwork.jar
ognl.jar
freemarker.jar
commons-logging.jar
commons-fileupload.jar
commons-io.jar
commons-validator.jar
commons-chain.jar
commons-beanutils.jar
oltre alla libreria:
javassist.jar
che è possibile scaricare da questo link:
http://sourceforge.net/projects/jboss/files/Javassist/3.14.0.GA/javassist-3.14.0-GA.zip/download
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 compare scegliamo “Libreries” e clicchiamo sul tasto “Add JAR/Folder”.
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.
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 cliccandoci su due volte e scegliendo il tab “XML”.
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:
<!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts><!-- Configuration for the default package. -->
<package name="default" extends="struts-default">
<action name="HelloWorld">
<result name="success">/welcome.jsp</result>
</action>
</package>
</struts>
Quindi creiamo il package “actions” nel Sources Package e al suo interno creiamo la classe HelloWorld.java al cui 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 è andato liscio si aprirà la pagina con il form e al suo invio la pagina di benvenuto.
La guida è stata creata integrando il tutorial:










