如果有人删除,更新或创建域对象,我想进行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/