Programmazione.it v6.4
Ciao, per farti riconoscere devi fare il login. Non ti sei ancora iscritto? Che aspetti, registrati adesso!
Info Pubblicità Collabora Autori Sottoscrizioni Preferiti Bozze Scheda personale Privacy Archivio Libri Corsi per principianti Forum
Guida al framework Struts (13/15)
Scritto da Dario Guadagno il 23-02-2009 ore 10:37
Affrontiamo in queste ultime lezioni aspetti più pratici nell'utilizzo del framework, partendo dall'analisi di una serie di Action standard; di seguito forniamo una descrizione di quelle più utilizzate nella pratica.

La prima è la DispatchAction: nella logica di un'applicazione Struts esegue il metodo execute() della Action, che corrisponde all'URL della richiesta effettuata dal client. Questo funzionamento si adatta poco alle situazioni nelle quali è necessario eseguire una serie di elaborazioni tra loro logicamente collegate. Tipico è l'esempio di operazioni CRUD (inserimento, cancellazione, lettura e aggiornamento) su una stessa tabella di un database. In una situazione del genere sarebbe poco raccomandabile definire una Action per ciascuna singola operazione; si assisterebbe, infatti, a un proliferare di Action nell'applicazione e quindi a una difficile gestione della stessa.

Struts risolve questa problematica introducendo la org.apache.struts.actions.DispatchAction:
è assolutamente analoga ad una Action base, ma fornisce la possibilità di invocare diversi metodi della stessa, purché il client specifichi il metodo da chiamare. In pratica essa è come una Action che non ha un solo metodo execute(), ma ne ha n con nomi diversi; ognuno di questi metodi deve avere la stessa signature del metodo execute(). Ad esempio una DispatchAction potrebbe avere i seguenti metodi:
  1. public ActionForward add(ActionMapping mapping, ActionForm form,HttpServletRequest req, HttpServletResponse res)
  2.                                throws IOException,ServletException;
  3.  
  4. public ActionForward remove(ActionMapping mapping, ActionForm form,HttpServletRequest req, HttpServletResponse res)
  5.                                throws IOException,ServletException;
Affinché l'elaborazione della richiesta possa essere effettuata correttamente, il client deve fornire nella request un parametro contenente il nome del metodo corrispondente. Questo parametro va ovviamente specificato nella definizione della Action nello struts-config.xml, nel seguente modo:
  1. < action
  2. path="/gestioneTabella"
  3. type="it.esempio.GestioneTabellaAction"
  4. name="gestioneTabellaForm"
  5. scope="request"
  6. input="/table.jsp"
  7. parameter="metodo"/ >
Se quindi da una pagina JSP si vuole invocare il metodo add() della Action GestioneTabellaAction sarà sufficiente specificare:

http://servername/context-root/gestioneTabella?metodo=add


Il nome del metodo può essere specificato in diversi modi, come un hidden contenuto in un form HTML, oppure può essere impostato da una funzione JavaScript prima di eseguire la submit() del form.
Precedente: Il modulo GeoLocalization di Tektronix per testare le reti wireless
Successiva: Pro Spring 2.5
Copyright Programmazione.it™ 1999-2013. Alcuni diritti riservati. Testata giornalistica iscritta col n. 569 presso il Tribunale di Milano in data 14/10/2002. Pagina generata in 0.303 secondi.