上記の質問のリンクに触発され、GrailsのWebサイトにあるよくある質問の1つが見つかりました。 Scalaの側では
: 次のようなオブジェクトを宣言します。
Grailsの側では
package scalaCallback
object ScalaCallback{
var cback: {def callback(example: String)} = null
def setCallback(cb: {def callback(example: String)}){
cback = cb
}
def invokeCallback(example: String){
if(callback != null) cback.callback(example)
}
}
:
次のようなグルーヴィーのsrc /でクラスを作成します。
package groovyCallback
import org.codehaus.groovy.grails.commons.ApplicationHolder
class GroovyCallback{
private GroovyCallback() {}
private static final INSTANCE = new GroovyCallback()
static getInstance(){ return INSTANCE }
void callback(String example){
ApplicationHolder.application.mainContext.yourService.yourMethod(example)
}
}
を
BootStrap.groovy initに以下を追加してください:
scalaCallback.cback = groovyCallback.GroovyCallback.getInstance()
あなたはScalaでinvokeCallback(「例」)を呼び出すと、それは
注yourService.yourMethod(「例」)を呼び出します:あなたのScalaのクラスとjarファイルは、あなたのGrailsアプリケーションのlibフォルダにする必要があります
こんにちは - することができますあなたは以下を受け入れる?ありがとう、 – sourcedelica