如果有人删除,更新或创建域对象,我想进行ajax调用以将新域对象发送到视图,以便使用新值实现表。我怎么能这样做?
我首先尝试创建自定义持久性事件侦听器。
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)
}
}
这里最好的方法是什么?在哪里调用ajax调用视图?
提前致谢。
答案 0 :(得分:0)
在哪里调用ajax调用视图?
不对视图进行Ajax调用。 Ajax调用将由客户端(通常是Web浏览器)启动。您可以使用其他技术(例如Web套接字)协调您想要的行为,但问题的答案是您不能。