- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用观察管理器实现事件监听器。我需要监听多个路径。
但是,我认为我们只能在一条路径上注册监听器。有没有办法可以监听多个路径?
我尝试过这样的事情
String pathvalues = "path1,path2,path3";
List < String > path = Arrays.asList(pathvalues.split(","));
session = repository.loginAdministrative(repository.getDefaultWorkspace());
observationManager = session.getWorkspace().getObservationManager();
for (String paths: path) {
observationManager.addEventListener(this, Event.NODE_ADDED, paths, true, null, null, false);
}
但这只是监听它迭代的最后一条路径。我想这是有道理的,所以我仍然被困住了。
我在网上找到了这个, SLING-4564
我实现了它,但不知何故它仍然没有听。
如果有人有任何意见,请告诉我。
最佳答案
对于您的第一期:
observationManager.addEventListener(this, Event.NODE_ADDED, paths, true, null, null, false);
But this is listening on only the last path it has iterated on
这是设计使然。偶数监听器仅注册到一个路径,循环中提供的最后一个路径将是事件路径。最后一次调用 addEventListener
之前的所有其他内容都将被忽略。
您的问题有两种可能的解决方案:
在父级注册您的监听器并在调用时过滤事件。
或者
使用 eventFilter.setAdditionalPaths(paths);
过滤多个路径上的事件,如 SLING-4564 中所述
第一种方法更可取,因为它允许您根据您的逻辑实现最佳且快速的过滤。例如,您的快速过滤器可以排除/etc/,以便您可以轻松评估事件路径并检查它是否以/etc/开头并丢弃它。
SLING-4564 基本上是为大型事件(例如 OAK 启动)而设计的,并且作为性能的一般准则,您的应用程序特定事件监听器应仅限于应用程序或内容特定路径,而不是本质上是全局的。
关于多个路径上的 aem cq 监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45140784/
我使用的是 Adobe Experience Manager (AEM) 6.3。在基本结构中,组件文件夹包含内容文件夹和结构文件夹。在我们放置组件的两个文件夹中。这两个文件夹有什么区别? 最佳答
Sling 中选择器有什么用? http://www.resourcePath .选择器.扩展名 我看过网上关于选择器使用的文档: 一些文档说它用于缓存页面的响应,而使用查询参数时无法做到这一点。 虽
如何在 AEMsightly 中仅在预览/ Release模式下删除装饰标签? 我看过问题和答案:AEM/CQ: Conditional CSS class on decoration tag 这会删
我们需要将特定版本的页面保留一段时间,比如说一年。 如果我们使用版本管理器并提供“Max Version Age”和“Max Number Versions”,它将保留该数量的最新 x 个版本时间。
我需要在我正在配置的新实例中安装大型软件包。我正在为此使用包管理器,但安装需要很长时间。还有其他方法可以做到吗?此外,如果我可以获得有关存储 DAM 包的物理位置的信息,那将会很有帮助。 (例如:有什
这个问题在这里已经有了答案: How to use/understand AEM Sling Resource Merger, override and Overlay concepts (1 个回
我正在通过一些在线教程来学习 AEM。根据教程,创建组件时,需要在 Allowed Parents 或 Allowed Children 中输入一些值。但是,我在窗口中看不到这样的选项。当我尝试创建组
扩展组件、覆盖组件和覆盖组件有什么区别。有人可以从开发者的角度解释一下吗 最佳答案 延伸和叠加 是一样的。这只是一个术语问题。扩展和覆盖涉及将组件从/libs/(或其他基础库)复制到/apps 节点并
Adobe AEM(以前称为 Adobe CQ)中的客户端库 (ClientLib) 功能可以轻松地按类别包含客户端库,并且每个库都可以通过依赖项引入其他库。然而,关于“主题”的文档有点薄。 此
如何从浏览器查看发布者日志? 我尝试使用“http://localhost:4503/bin/crxde/logs?tail=1000”。但我没有得到日志。有什么方法可以启用它吗? 最佳答案 使用这个
请概述一下什么是 AEM 中的组件、页面、页面组件和模板。他们之间有什么关系。请尽可能举例说明。 建议任何网站作为初学者开始。 最佳答案 您有点混淆了技术和非技术术语。所以我尝试用两种方式来解释它:从
我正在尝试在列表组件的对话框上启用子编辑器,以允许用户将自定义组件添加到其中,例如来自核心的轮播组件。 我使用 AEM 6.5,并且 sling:resourceSuperType 是来自核心的列表。
使用 crx 包管理器在 AEM 中构建包时抛出错误“包构建未定义”。但是当我在 etc/packages/mypackages 下检查时,包被创建了。即使错误日志中没有错误或异常。我该如何解决这个问
在AEM 6.5的编辑模式下,如果我点击一个组件,会弹出上面的工具栏。除了通过在 CRXDE 上创建 cq:dialog 节点来添加对话框( Spanner 按钮)之外,您可以在工具栏上创建自定义按钮
在阅读在线 AEM 文档时,我了解到如何在 Debug模式下运行 AEM。 但是如何在远程 AEM 服务器上进行调试? 最佳答案 要使用远程调试,您必须使用此 JVM 参数启动 CQ5:-agentl
假设您有一个页面结构,称为: /content/site/en_us/foo/bar 您需要将 foo 页面从另一个环境移动到这个环境,但我们不想包含 bar 页面或任何其他子页面。 如果我定义一个包
我有一个服务于多个站点的 AEM 实例。一个站点正在使用一个组件。我想在另一个网站上使用这个组件。我不想将组件文件复制并粘贴到第二个站点并像那样拆分代码库。有谁知道在另一个站点上使用此组件的方法吗?
默认情况下,所有 GET 请求首先转到 DefaultGetServlet。基于扩展,它将请求委托(delegate)给渲染器。现在,如果请求 URI 中没有扩展名,为什么 AEM 会发送 403 (
我使用 ACS.CQ 库中的 xtype 'multifieldpanel' 进行 'multifield configuration'。而且我无法在我的对话框中设置“pathfield”的大小。我需
我正在使用 AccountManager API 来创建用户。当我不在注册表中使用个人资料图片并且用户注册时它工作得很好但是一旦我使用个人资料图片,我会收到以下错误: Caused by: javax
我是一名优秀的程序员,十分优秀!