Struts 2 : esempio di CRUD utilizzando Convention Plugin e Tiles 2

Questo è un semplice esempio di una applicazione web che gestisce tutte le operazione base sui dati, ovvero quello che in genere viene chiamato CRUD (Create, Read, Update, Delete).
Viene visualizzato un elenco di libri, con la possibilità di inserirne di nuovi o di modificare o eliminare quelli esistenti:

La struttura della applicazione web

Innanzi tutto la semplice struttura di questa applicazione. E’ composta da due namespace e dalle relative action:

  • Namespace “/” con le action:
    • index
    • biblioteca
  • Namespace “biblioteca/” con le action:
    • nuovo
    • salva
    • modifica

 

Tanto per intenderci questi sono i relativi url (dando per scontato che la base dell’applicazione sia http://localhost:8080/crud:

  • http://localhost:8080/crud/index
  • http://localhost:8080/crud/biblioteca
  • http://localhost:8080/crud/biblioteca/nuovo
  • http://localhost:8080/crud/biblioteca/salva
  • http://localhost:8080/crud/biblioteca/modifica

 

La definizione delle action

All’interno del file struts.xml ho definito solo l’action /index del namespace “/” impostandolo come action di default. In più, visto che uso Tiles2 per la gestione del layout, c’è anche la definizione del result-type relativo:

Ricapitolando le action sono:

  • /biblioteca
  • /biblioteca/nuovo
  • /biblioteca/salva
  • /biblioteca/modifica

 

L’action “/biblioteca” viene definita in questo modo nella classe Libri:

Definita in questo modo questa action:

  • Eredita le definizione del package default (@ParentPackage(“default”))
  • Appartiene al namespace “/” (@Namespace(“/”))
  • Definisce un result di tipo tiles (@Result(name = “vai-alla-biblioteca”, location = “biblioteca”, type=”tiles”))

 

La classe LibroCrud definisce le altre action:

Definita in questo modo questa action:

  • Eredita le definizione del package default (@ParentPackage(“default”))
  • Appartiene al namespace “/biblioteca” (@Namespace(“biblioteca”))
  • Definisce i results di tipo tiles
    @Result(name = “libro”, type=”tiles”, location = “libro”),@Result(name = “biblioteca”, type=”redirect”, location = “/biblioteca”)

La configurazione di Tiles

Utilizzo solo 3 tiles:

  • siteLayout: la mia homepage -> homepage.jsp
  • biblioteca: la pagina con l’elenco dei libri -> biblioteca.jsp
  • libro: la pagina di inserimento/modifica di un libro -> libro.jsp

Le pagine jsp

In queso piccolo esempio sono solo due:

biblioteca.jsp

biblioteca

Definita in questo modo:

e libro.jsp

libro

Il cui codice è:

Tutto quà. Se volete vederlo in azione scaricate il progetto.

Scarica il progetto di esempio

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *