Integrare Struts con Flex 2 in ambiente J2EE - Parte 2
(scritto da , il giorno 02-05-2007 02:10)
In questo articolo descriveremo brevemente il framework Struts, analizzandone l' architettura ed il pattern MVC su cui si basa. Inoltre realizzeremo una applicazione Struts che comunichera' con il nostro client realizzato in Flex. L' utilizzo dell' IDE JDeveloper ci aiutera' nella creazione di un ambiente standard per la nostra applicazione.
"Apache Struts is an elegant, extensible framework for creating enterprise-ready Java web applications."
Grazie a Struts è possibile sviluppare applicazioni web di notevoli dimensioni.
In questo articolo descriveremo in breve questo framework analizzandone l'architettura.
Struts è un "flexible control layer" basato su tecnologie standard quali Servlet, JavaBeans, JSP e XML. Il framework aiuta lo sviluppatore nella creazione di un ambiente standard per delle applicazioni basate su standard e design pattern.
Architettura
Jakarta Struts è un MVC web application framework, ovvero è un framework per lo sviluppo di applicazioni web J2EE basato sul pattern Model-View-Controller.
Questo modello applicativo consente di disaccoppiare i diversi componenti dell' applicazione in base al loro ruolo nell' architettura che garantisce vantaggi in termini di riusabilità e manutenibilità.
Il framework fornisce una ActionForm class come supporto per il trasferimento di dati tra il Model ed il View.
Spesso il Model è rappresentato da un set di JavaBeans.
Una applicazione web utilizza un deployment descriptor per inizializzare le risorse (quali Servlet e taglibs). Il deployment descriptor è un file formattato come documento XML e chiamato "web.xml".
Inoltre Struts utilizza un file di configurazione chiamato "struts-config.xml" per inizializzare le proprie risorse. Queste sono le ActionForms, le ActionMappings, le Actions e le ActionForwards.
Flusso dell' informazione all' interno del framework
In questa figura è rappresentato schematicamente come l' informazione attraversa e viene elaborata dai tre livelli del framework:
- il client invia una request http che viene acquisita dalla ActionServlet di Struts che ne elabora l' informazione e ne estrae i dati con cui richiamerà le seguenti classi: ActionForm e ActionMapping;
- è invece la Action che svolge il cuore dell' elaborazione: gli è assegnato il compito di elaborare la richiesta http, infatti le verranno passati i seguenti parametri:
- ActionMapping mapping;
- ActionForm form;
- HttpServletRequest request;
- HttpServletResponse response.
- una volta elaborata l' informazione, la Action restituisce alla ActionServlet una ActionForward contenente li informazione da inviare allo strato View;
- infine la ActionServlet restituisce al client il risultato dell' elaborazione.
Procedura per la realizzazione di un applicativo Struts con JDeveloper
Una volta installato JDeveloper andiamo a creare un progetto che ci semplifica la struttura MVC della nostra application.
Creiamo inizialmente la nostra application assegnandogli il nome "mySampleApplication":
sull' Application Navigator apparirà la nostra application già strutturata secondo il template MVC; a noi in questo articolo interesserà modificare solo il ViewController.
Apriamo il file "struts-config.xml" ed inseriamo qui le nostre pagine JSP e la Action, ovvero il cuore del Controller;
Dal Navigator "Struts Page Flow" trasciniamo dentro il nostro struts-config.xml la nostra Action che chiameremo "MyAction". Settiamo questa action come "Default run target" in modo che quando manderemo in run la nostra application la action sarà il target che verrà interrogato per primo.
Trasciniamo dentro anche 2 pagine JSP che saranno il View di una request http e le forward.
Proviamo a compilare il nostro ViewController e non dovrebbero esserci errori.
Adesso analizziamo due file molto importanti:
"struts-config.xml" :
<?xml version="1.0" encoding="windows-1252" ?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
<struts-config>
<action-mappings>
<actionpath="/myAction"unknown="true"type="view.MyAction">
<forwardname="success"path="/myOK.jsp"/>
<forwardname="fault"path="/myFault.jsp"/>
</action>
</action-mappings>
<message-resourcesparameter="view.ApplicationResources"/>
</struts-config>
in questo file vengono mappate tutte le procedure che abbiamo realizzato graficamente; infatti vengono dichiarate le action con le loro forward e le pagine JSP di output.
<?xml version = '1.0' encoding = 'windows-1252'?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-
app_2_4.xsd" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee">
<description>Empty web.xml file for Web Application</description>
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>35</session-timeout>
</session-config>
<mime-mapping>
<extension>html</extension>
<mime-type>text/html</mime-type>
</mime-mapping>
<mime-mapping>
<extension>txt</extension>
<mime-type>text/plain</mime-type>
</mime-mapping>
</web-app>
Ora vediamo come si presenta graficamente il nostro "struts-config":
Il deploy viene eseguito nel seguente modo:
Run --> deploy --> "New Deployment Profile" e apparirà la seguente schermata:
Selezionare WAR file e premere OK.
Verrà creata all' interno della cartella ViewController del nostro progetto una cartella chiamata "deploy" al cui interno troveremo 2 file *.ear e *.war; prendiamo il nostro file *.war e copiamolo all' interno della webapps del nostro WebContainer (es. TomCat).
Una volta riavviato il nostro Web container se proviamo a collegarci al seguente indirizzo potremo verificare il nostro lavoro:
http://127.0.0.1:8080/myWebStrutsApp/myAction.do
Finalmente un pò di codice
publicclass MyAction extendsAction {
publicActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws IOException,
ServletException {
String strAction = null;
strAction = request.getParameter("action");
// in strAction viene memorizzato il parametro della mia request;
if (strAction != null) {
if (strAction.equals("firstRequest"))
returnmapping.findForward("success");
if (strAction.equals("secondRequest"))
returnmapping.findForward("noSuccess");
}
return mapping.findForward("fault");
// in base al valore del parametro la classe Action restituirà la pagina corretta;
}
}
Codice relativo alle pagine JSP
"myOK.jsp"
<?xml version="1.0" encoding="utf-8"?><%@ page contentType="text/xml; charset=UTF-8"%>
<xml>
<msg>Hello World :D</msg>
</xml>
"myNoOK.jsp"
<?xml version="1.0" encoding="utf-8"?><%@ page contentType="text/xml; charset=UTF-8"%>
<xml>
<msg>Errore</msg>
</xml>
"myFault.jsp"
<?xml version="1.0" encoding="utf-8"?><%@ page contentType="text/xml; charset=UTF-8"%>
<xml>
<msg>ERROR</msg>
</xml>
Commenti (0)
Registrati ed esegui il login se vuoi lasciare un commento
Scarica o stampa l'articolo "Integrare Struts con Flex 2 in ambiente J2EE - Parte 2" in formato PDF
Torna indietro









