ajax - GORM持久性事件监听器

标签 ajax grails gorm

如果有人删除,更新或创建域对象,我想进行ajax调用以将新的域对象发送到 View ,以便使用新值来实现表。我怎样才能做到这一点?

我尝试首先创建一个自定义持久性事件侦听器。

public class MyCustomPersistenceListener
    extends AbstractPersistenceEventListener {


protected MyCustomPersistenceListener(Datastore datastore) {
    super(datastore)
}

@Override
protected void onPersistenceEvent(AbstractPersistenceEvent event) {
    switch (event.eventType.toString()) {
        case "PreInsert":
            println "PRE INSERT ${event.entityObject}"
            break
        case "PostInsert":
            println "POST INSERT ${event.entityObject}"
            break
        case "PreUpdate":
            println "PRE UPDATE ${event.entityObject}"
            break;
        case "PostUpdate":
            println "POST UPDATE ${event.entityObject}"
            break;
        case "PreDelete":
            println "PRE DELETE ${event.entityObject}"
            break;
        case "PostDelete":
            println "POST DELETE ${event.entityObject}"
            break;
        case "PreLoad":
            println "PRE LOAD ${event.entityObject}"
            break;
        case "PostLoad":
            println "POST LOAD ${event.entityObject}"
            break;
    }
    //println "${event.eventType}"
}

@Override
boolean supportsEventType(Class<? extends ApplicationEvent> aClass) {
    return true
}

}

然后在Bootstrap.groovy中,将我的应用程序侦听器添加到grails应用程序上下文中。
def grailsApplication

def init = { servletContext ->
    def applicationContext = grailsApplication.mainContext

   grailsApplication.mainContext.eventTriggeringInterceptor.datastores.each { k, datastore ->
        applicationContext.addApplicationListener new MyCustomPersistenceListener(datastore)
    }
}

最好的方法是什么?在哪里向 View 进行Ajax调用?

提前致谢。

最佳答案

Where to make the ajax calls to the view?



不会对 View 进行Ajax调用。客户端(通常是Web浏览器)将发起Ajax调用。例如,您可以使用Web套接字等其他技术来协调所需的行为,但是对于所问问题的答案是不可能的。

关于ajax - GORM持久性事件监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39676946/

相关文章:

javascript - jQuery AJAX 递归

angular - Angular + Grails:刷新页面或键入URL

grails - GORM无法与spring-boot-devtools一起使用?

grails - 域对象属性列表,不包括关联

grails - 如何使用属性名称访问域属性?

javascript - Jquery 将参数添加到 $.ajax 上的函数

jquery select options 删除初始选项并替换为其他选项

ajax - Django 1.9 AJAX 表单 CSRF token 403 错误 - "CSRF cookie not set"

rest - 在UrlMappings中定义的REST资源产生404

grails - Array.size()返回错误的值(Grails)