maggio 22, 2017

Operazioni di CRUD con Struts MVC e Hibernate

In un articolo precedente ho mostrato come effettuare una configurazione minima di Hibernate in un applicazone web Struts MVC. Vediamo ora come implementare le funzionalità CRUD di base (Create Read Update Delete) riprendendo l’esempio di progetto dell’articolo precedente in cui il livello di business è rappresentato da un ipotetico cliente.

Di seguito riporto i principali oggeti Struts-MVC utilizzati:

ActionForm: mantiene lo stato in sessione dell’applicazone web e rappresentata il contenitore dei dati inseriti dall’utente in un form lato client
DispatchAction: delega e raggruppa tutte le azioni legate al CRUD del cliente a un unico oggetto CustomerAction
ActionForward, ActionMapping: definizione dei path ai quali la servlet di Struts inoltra il flusso elaborativo; integrazione con il livello di View rappresentato dalle pagine Velocity del cliente.

CHECK OUT THE SOURCE CODE ON GITHUB

Creiamo prima l’oggetto ActionForm per il cliente

– CustomerForm

Definiamo il form bean nel file struts-config.xml

Passiamo ora al livello Controller dell’MVC. Creiamo l’oggetto CustomerAction che estende DispatchAction di Struts. La classe contiene tutti i metodi per le funzionalità di CRUD.

– CustomerAction

Definiamo le action nel file di mapping struts-config.xml. Da notare l’utilizzo della definizione parameter=”action” usata per specificare l’azione ActionForward nella request http (i.e.  http://localhost:8080/demo/customers.do?action=multiRetrieve)

Passiamo infine al livello View dell’MVC. Utilizziamo il template engine di Velocity e creiamo una pagina per visualizzare l’elenco dei clienti e una pagina per visualizzarne il dettaglio. Quest’ultima pagina verrà utilizzata anche per le operazioni di aggiornamento o creazione di un nuovo cliente.

– WebContent/pages/customers.vm

– WebContent/pages/customer.vm

Ecco come si presenta il layout di progetto

 crud-struts-hibernate-project-layout

 

Related posts

Leave a Reply

Your email address will not be published.