在AEM 6.3中,您可以通过以下步骤设置PageEvent处理程序/监听器:
import org.osgi.service.event.Event;
import org.osgi.service.event.EventHandler;
@Component(service = EventHandler.class,
property = {
EventConstants.EVENT_TOPIC + "=" + PageEvent.EVENT_TOPIC
})
public class PageEventListener implements EventHandler {
@Override
public void handleEvent(Event event) {
// 处理事件的逻辑
String path = (String) event.getProperty(PageEvent.PATH);
String type = (String) event.getProperty(PageEvent.TYPE);
// 在控制台输出事件信息
System.out.println("Page Event: " + type + " at " + path);
}
}
在 /apps/myproject/config/org.apache.sling.event.impl.listeners.EventListenerConfiguration.config 文件中添加以下内容:
event.topics=org/apache/sling/api/resource/Resource/ADDED, org/apache/sling/api/resource/Resource/CHANGED, org/apache/sling/api/resource/Resource/REMOVED
event.filter=(path=/content/myproject/*)
service.pid=myproject.pageeventlistener
在 /apps/myproject/config/org.apache.sling.event.impl.jobs.jcr.JcrEventListener.config 文件中添加以下内容:
event.topics=org/apache/sling/api/resource/Resource/ADDED, org/apache/sling/api/resource/Resource/CHANGED, org/apache/sling/api/resource/Resource/REMOVED
event.filter=(path=/content/myproject/*)
service.pid=myproject.pageeventlistener
在您的项目中,确保在Maven中引入所需的依赖项(例如,Apache Sling Event,Apache Sling API等)。
使用Maven构建并部署您的项目到AEM实例中。
当在/content/myproject路径下创建、修改或删除页面时,PageEventListener类中的handleEvent方法将被调用,并处理事件的逻辑。
请注意,上述示例代码是一个简单的示例,您可以根据您的具体需求进行修改和扩展。