Parancoe: i controller
Scrivo qui un breve tutorial su come definire un controller per Parancoe. A breve una versione in inglese sul sito del progetto (Lucio te lo prometto ;) )
Update 2007-10-02 12:55:00: If you want the English version of this tutorial follow this link
Definizione
Per definire un controller in Parancoe i passi da compiere sono due:
- scrivere la classe del controller
- definire in parancoe-servlet qual è il package nel quale il controller si trova.
Supponiamo di dover creare un controller che gestisca le chiamate alle url del tipo "/admin/*.html". Definiamo la classe AdminController in questo modo:
package org.parancoe.basicWebApp.controllers;
public abstract class AdminController extends BaseMultiActionController {
...
}BaseMultiActionController è una classe di Parancoe che estende MultiActionController aggiungendo utilità per il logging e la gestione degli errori.
Una volta definito il controller, per agganciarlo al corretto url è sufficiente mettere l'annotazione @UrlMapping("mia_url") in questo modo:
package org.parancoe.basicWebApp.controllers;
@UrlMapping("/admin/*.html")
public abstract class AdminController extends BaseMultiActionController {
...
}Autodiscovery
A questo punto è sufficiente inserire la seguente riga nel file parancoe-servlet.xml:
<define-controllers
basePackage="org.parancoe.basicWebApp.controllers"
parent="abstractController" />Parancoe si occuperà di andare ad analizzare i controller definiti in basePackage e a caricarli nel contesto di Spring. Inoltre registrerà il mapping definito dall'annotazione.
Le annotazioni
Le annotazioni che si possono utilizzare per definire il mapping sono tre:
- @UrlMapping: riceve una stringa che contiene la definizione di un'url;
- @MultiUrlMapping: premette di definire più mapping per lo stesso controller
- @DefaultUrlMapping: questa annotazione non prevede alcun parametro e serve ad indicare a Parancoe di usare il metodo di default per la definizione del mapping.
Per quanto riguarda l'ultima annotazione, il metodo di default definisce il mapping a partire dal nome del controller: così AdminController mapperà su /admin/*.html, mentre MioFantasticoController su /mio/fantastico/*.html.
(e adesso forse è più chiaro a cosa servisse il metodo uncamelize che avevo descritto qualche tempo fa).
Alcune note finali
E' ancora possibile definire i propri controller all'interno del file parancoe-servlet.xml.
Si deve però avere l'accortezza di usare come id il nome completamente qualificato del controller, così da sovrascrivere la definizione costruita dall'autodiscovery.
Happy parancoing!
- gtrev's blog
- 1384 reads



18 weeks 1 giorno ago
31 weeks 5 days ago
38 weeks 3 days ago
47 weeks 2 days ago
50 weeks 2 days ago
52 weeks 3 hours ago
1 anno 4 weeks ago
1 anno 5 weeks ago
1 anno 31 weeks ago
1 anno 31 weeks ago