So, wenden wir uns mal den Views zu, denn wenn man mit grails generate-all die Komponenten für eine Domain Klasse generiert, sind auch sie dabei. Grundsäzlich kann man die Views als Java Server Pages (JSP) oder als Groovy Server Pages (GSP) implementieren. Zu den Unterschieden gibt es ein eigenes Kapitel in der wirklich sehr guten Dokumentation.
Der größte Unterschied dürfte aber sein, dass die Scriptlets (sofern man sie verwendet) in den GSP nicht in Java, sondern in Groovy geschrieben werden. Innerhalb des Controllers gibt es eine Konvention, wie auf Views weitergeleitet wird.
def show = {
[ managedUser : ManagedUser.get( params.id ) ]
}
Die korrespondierende View zur Controller Methode show sollte unter grails-appviewsmanagedUser
liegen und show.gsp oder show.jsp heißen.
Layouts
Ein einheitliches Layout ist für eine gute Webanwendung Pflicht. Menüs, Logos und Navigationselemente sollten immer den gleichen Platz einnehmen um den Benutzer die Bedienung zu vereinfachen. Doch in der heutigen Webwelt ändern sich Layouts ständig, was einen großen Arbeitsaufwand bedeuten würde, wenn man nicht mit Templates (Schablonen) arbeiten könnte.
Grails unterstützt dafür das Templating Framework SiteMesh. Die Templates oder Layouts liegen als Groovy Server Pages (*.gsp) im Pfad grails-app/views/layouts/
(z.B. mylayout.gsp).
Eingebunden werden die Layouts in die View über ein layout Meta Tag.