最新的一期据说是荷兰的java杂志里的关于Grails部分

0 views
Skip to first unread message

Alex wang

unread,
Nov 10, 2008, 7:45:15 PM11/10/08
to grail...@googlegroups.com

详细内容请看附件,摘要如下
 
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)


Scaffolding

class BoekController {
def scaffold = true
}

Controllers

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)
}
}


Groovy Server Pages

<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>

Dynamic Tag Libraries

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>

Service

class BoekService {
def buyBoek() {
..
}
}
class BoekController {
def boekService
def buy = {
def boek = Boek.get(params.id)
boekService.buyBook(boek)
..
}
}


Ajax

// 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>





JAva magazine okt 08_Grails_Groovy_Marcel_Overdijk_Valid.pdf
Reply all
Reply to author
Forward
0 new messages