도메인 객체를 삭제, 업데이트 또는 생성하는 경우 새 값으로 테이블이 실현되도록보기에 새 도메인 객체를 보내기 위해 ajax 호출을 만들고 싶었습니다. 어떻게해야합니까?GORM 지속 이벤트 리스너
먼저 사용자 지정 지속성 이벤트 수신기를 만들려고했습니다.
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)
}
}
여기서 가장 좋은 방법은 무엇입니까? 보기로 아약스 호출을 할 위치는 어디입니까?
미리 감사드립니다.
스프링 또는 기본 웹 소켓을 사용할 수 있습니다. 데모 사이트가 기본 websocket jssh와 boselecta를 사용하는 플러그인을 작성했습니다. 기본값에 대한 선호도에 따라 그들은 당신에게 아이디어를 줄 것입니다. – Vahid