GORM
class Boek {
String titel
String auteur
BigDecimal prijs
}
// creëren van een nieuw boek
def b = new Boek(titel:"The Definitive Guide to
Grails", auteur:"Graeme Rocher", prijs:25.99)
b.save()
// ophalen van een boek op basis van het id
def b = Boek.get(1)
// ophalen van alle boeken
def boeken = Boek.list()
// wijzigen van een boek
def b = Boek.get(1)
b.prijs = 19.99
b.save()
// verwijderen van een boek
def b = Boek.get(1)
b.delete()
// enkele dynamic finder voorbeelden (veel meer
variaties mogelijk!)
def b = Boek.findByTitel("The Definitive Guide to
Grails")
b = Boek.findByTitelLike("%Grails%")
b = Boek.findByTitelLikeAndPrijsLessThan("%Grail
s%", 30.00)
class BoekController {
def scaffold = true
}
class BoekController {
def show = {
def boek = Boek.get(params.id)
return [boek:boek]
}
def save = {
def boek = new Boek(params)
boek.save()
flash.message = "Boek ${boek.id} ingevoerd"
redirect(action:show, id:boek.id)
}
}
<html>
<body>
<table>
<tr>
<td>Titel:</td>
<%-- JSP-style output --%>
<td><%=boek.titel%></td>
</tr>
<tr>
<td>Auteur:</td>
<%-- GSP Expression output --%>
<td>${boek.auteur}</td>
</tr>
<tr>
<td>Prijs:</td>
<td><g:formatNumber number="${boek.prijs}"
format="#0.00" /></td>
</tr>
</table>
<g:form>
<input type="hidden" name="id" value="${boek?.
id}" />
<g:actionSubmit value="Edit" />
<g:actionSubmit value="Delete" />
</g:form>
</body>
</html>
class BoekTagLib {
static namespace = "boek"
def image = { attrs, body ->
def baseUrl = "some server path"
def titel = attrs.boek.titel
def imageSrc = "${baseUrl}/${titel}.gif"
out << '<img src="${imageSrc}" />'
}
}
// view code
<html>
<body>
<boek:image boek="${boek}" />
.. overige code show.gsp ..
</body>
</html>
// controller action
import grails.converters.*
def show = {
def boek = Boek.get(params.id)
// return xml response
render boek as XML
}
// view code
<g:javascript>
function updateBoek(e) {
// javascript code voor het updaten van de client
// uitlezen van de ontvangen xml
}
</g:javascript>
<g:remoteLink action="show" id=" ${boek.id}"
onSuccess="updateBoek(e)">
Ververs Boek
</g:remoteLink>