Klasą bazową dla wszystkich kontrolerów jPALIO MVC jest klasa jpalio.mvc.Controller. Aby stworzyć kontroler należy w obiekcie jPALIO utworzyć klasę dziedziczącą po tej klasie. Sterowanie obsługą danego żądania odbywa się poprzez adnotacje umieszczone przy metodach kontrolera oraz ich argumentach. Tylko oznaczone metody biorą udział w procesie obsługi żądania.
O tym jaka metoda będzie obsługiwac dane żądanie decydują następujące czynniki:
Jedyną czynnością jaką należy wykonać aby żądania wysyłane do danej strony jPALIO były obsługiwane przez kontroler jest ustawienie obiektu jPALIO zawierającego daną klasę kontrolera jako obiekt ciała strony jPALIO. Utworzenie nowego kontrolera nie wymaga restartu środowiska jPALIO.
Przykład bardzo prostego kontrolera bazującego na nazwach metod (żadna z metod nie ma argumentów)
package samples.features.userInterface.mvc;
import palio.*
import palio.modules.*
import jpalio.mvc.*
import jpalio.mvc.annotations.*
public class SimpleController extends Controller {
@RequestHandler(view=["samples.features.userInterface.mvc.defaultHandlerView"], defaultHandler=true)
public void someDefaultHandler() {
}
@RequestHandler(view=["samples.features.userInterface.mvc.firstRequestHandlerView"])
public void firstRequestHandler() {
}
@RequestHandler(view=["samples.features.userInterface.mvc.secondRequestHandlerView"])
public void secondRequestHandler() {
}
// Handling unhandled exceptions
protected void handleException(Exception ex) {
// Do some exception handling
println "An exception occured: ${ex.getClass().getName()}"
}
}