di: Fabio Marcone 11 Ottobre 2010
Grails è un framework opensource (rilasciato con licenza Apache 2.0) per lo sviluppo di applicazioni web basato sul linguaggio Groovy. Essendo basato su Groovy, e quindi su Java, Grails consente agli sviluppatori Java di riutilizzare il codice Java già sviluppato.
Lo sviluppo di Grails è iniziato nel lontano luglio 2005, si tratta dunque di un progetto maturo, e attualmente la versione stabile è la 1.3.5.
In questo articolo mostreremo le più importanti caratteristiche del framework, senza soffermarci sul linguaggio utilizzato, Groovy, per i cui dettagli rimandiamo all'Introduzione a Groovy già menzionata.
Grails è basato sul paradigma Model View Controller che separa la logica, la visualizzazione e la gestione degli oggetti coinvolti.
Domains (model): i domains costituiscono la componente Model di MVC, in particolare un domain è una classe Groovy che rappresenta una entità. Tale classe Groovy contiene le dichiarazioni degli attributi dell'entità che rappresenta, i vincoli sugli attributi, e le relazioni con gli altri domains dell'applicazione.
Esempio: Albero.groovy
class Albero {
static constraints = {
nome(blank:false)
}
String nome
TipoAlbero tipoAlbero
}
TipoAlbero.groovy
class TipoAlbero {
static hasMany = [albero:Albero]
static constraints= {
descrizione(blank:false)
}
String descrizione
}
Nell'esempio abbiamo definito due domains: Albero e TipoAlbero. Il primo ha due attributi: nome (che non deve essere vuoto) e tipoAlbero, quest'ultimo è un riferimento al dominio TipoAlbero, cioé tra TipoAlbero e Albero c'è una relazione 1-a-molti, come indicato nella definizione di TipoAlbero.
I domains definiti vengono mappati da Grails, tramite il sottosistema GORM (Grails Object Relational Mapping), in tabelle e relazioni del database di backend utilizzato. GORM utilizza, come abbiamo già accennato, il framework Hibernate per eseguire il mapping. Il database di backend utilizzato da GORM è indicato nel file DataSource.groovy del progetto, di default Grails è configurato per utilizzare il DBMS HyperSQL, incluso in Grails come abbiamo visto nel paragrafo precedente.
I Controllers contengono la logica dell'applicazione web, in particolare contiene i metodi a cui si accede mediante URL. Le URL in Grails infatti hanno la seguente struttura:
http://indirizzo-del-server:8080/nome-applicazione/controller/metodo
Esempio: AlberoController.groovy
class AlberoController {
def index = {
render "index di AlberoController"
}
def lista = {
render "lista degli alberi"
}
}
Nell'esempio precedente abbiamo definito un controller con due metodi, index e lista e sono accessibili dal browser mediante le seguenti URL:
http://indirizzo-del-server:8080/nome-applicazione/albero/
http://indirizzo-del-server:8080/nome-applicazione/albero/lista
Al fine di utilizzare i meccanismi di scaffolding è sufficiente inserire, al posto delle definizioni dei metodi, l'istruzione def scaffolding = Albero
che indica a Grails che deve creare tutti i metodi per le operazioni CRUD sul domain Albero (e le relative views).
Le Views si occupano della parte di visualizzazione delle pagine Weeb. Le view sono definite mediante pagine GSP (Groovy Server Pages), che utilizzano come linguaggio di markup le librerie di tag di Grails e codice HTML.
Vediamo alcuni tag GSP di esempio:
| Campo | Descrizione |
|---|---|
<g:each> | Definisce un ciclo |
<g:if> | Defnisce un blocco di codice eseguito solo se è soddisfatta la condizione indicata |
<g:link> | Definisce un link nella pagina |
Come potete notare, i tag Grails hanno il prefisso "g:". È inoltre possibile espandere la libreria standard di tag, definendo dei tag personalizzati, ma questo esula dallo scopo di questo articolo.
|
AppFuse: realizzare un'applicazione completa (implementare i servizi) |
Guida Apache StrutsIl primo e più utilizzato tra i framework MVC del mondo Java,... |
Guida Java SpringScoprire il lightweight container più famoso del mondo Java.... |
Guida Java 6Prendendo le mosse dalla guida Java, già presente su HTML.it,... |
Ogni mese, direttamente nella tua e-mail: articoli, script e guide su Java, Visual Basic, VB.Net ed i più diffusi linguaggi di programmazione.
Iscriviti alla newsletter
|
|
Corso Google AdWords Base25 Giugno 2012 a Milano |
|
|
Corso Google AdWords Base05 Giugno 2012 a Roma |