Лучше всего использовать библиотеку тегов, поскольку создание экземпляра службы непосредственно в представлении через загрузчик классов НЕ БУДЕТ автоматически связывать другие объявленные службы, которые могут жить в службе, которую вы пытаетесь использовать.
Используя библиотеку тегов, вы будете автоматически подключать эти службы.
В вашем представлении gsp <g:customTag param1="$modelObjec" param2="someString" />
В вашей папке 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"
}
}
Ваш MyService:
package com.something
class MyService {
def anotherService // This will be auto-wired
def method() {
anotherService.anotherMethod()
}
}