Meglio utilizzare la libreria di tag perché la creazione di un'istanza di servizio direttamente nella vista tramite il caricatore di classi NON autorizzerà altri servizi dichiarati che potrebbero vivere in il servizio che stai tentando di utilizzare.
Utilizzando la libreria di tag si avrà l'auto-cablaggio di tali servizi.
Secondo lei SPG <g:customTag param1="$modelObjec" param2="someString" />
Nella cartella taglib (yourApp/grails-app/taglib/com/something/MyAppTagLib
):
package com.something
class MyAppTagLib {
def myService // This will be auto-wired
def customTag = { attribs ->
def modelObj = attribs['param1']
def someString = attribs['param2']
// Do something with the params
myService.method()
out << "I just used method of MyService class"
}
}
tuo MyService:
package com.something
class MyService {
def anotherService // This will be auto-wired
def method() {
anotherService.anotherMethod()
}
}
vedi anche http://stackoverflow.com/questions/ 1607186/how-to-call-a-grails-service-in-a-view – Gregor