LES CONTROLEURS
Le contrôleur est la classe qui reçoit la requête de l'utilisateur et qui, en fonction de l'action
demandée, va effectuer un traitement.
Pour gérer quelle est l'action et quel contrôleur est appelé Grails se base sur le formatage de
l'URL : http://<...>/controller/action/
LES VUES
Les vues sont représentées par des fichiers GSP (Groovy Server Page). Elles sont similaires aux
pages JSP. La différence vient du fait qu'on peut insérer du code Groovy.
On constate dans l'arborescence qu'il y a une vue dédiée à chaque contrôleur et une vue dédiée à
une action du contrôleur . ( voir Annexe )
LE LANGAGE GROOVY
Groovy est un langage de script se basant sur la syntaxe de Java. Le code Java est d'ailleurs
compatible. Donc, si vous êtes un développeur Java, vous savez déjà coder en Groovy !
La syntaxe de Groovy est faite pour apporter plus de flexibilité au langage Java.
Voici les différentes simplifications que l'on peut effectuer sur un code Java que l'on souhaite
transformer en Groovy :
•Les "getters" et les "setters" sont implémentés par défaut. Il n'est donc pas nécessaire de les
implémenter.
•L'utilisation des setters est simplifiée. On peut écrire : objet.champ="nouvelle valeur";
•Comme la vérification des types s'effectue à l'exécution, il n'est pas nécessaire de déclarer le
type lors d'une déclaration de variable.
On peut donc remplacer : String nom par def nom , dans le premier cas on définit une
variable nom de type String, dans le second cas on définit simplement une variable nom.
•Il n'est pas nécessaire d'écrire le mot return pour retourner un objet à la fin d'une méthode.
C'est l'objet qui se trouve sur la dernière ligne de cette méthode qui est automatiquement
retourné.
•La concaténation est simplifiée. Il est possible d'insérer des variables à l'intérieur des chaînes
de caractères :
def sayHello(){
"Hello ${nom} ${prenom} !"
}
•Les points virgule ne sont plus obligatoires.
GROOVY apporte également une gestion simplifiée des collections :
Liste en Java :
List<String> lesPays = new ArrayList<String> ();
lesPays.add("France");
lesPays.add("Allemagne");
lesPays.add("Italie");
lesPays.add("Belgique");