Aem 当使用侧踢激活特定页面时,如何从页面URL检索选择器。实现这一目标的正确方法是什么?

Aem 当使用侧踢激活特定页面时,如何从页面URL检索选择器。实现这一目标的正确方法是什么?,aem,sling,Aem,Sling,我正在AEM中编写一个预处理器。这是一个在激活页面之前运行的类。当一个页面被激活时,我应该使用com.day.cq.replication.Replicator服务手动激活另一个页面 但是我非常依赖页面的完整路径,包括选择器。 我的页面是 当我使用 @Override public void preprocess(ReplicationAction replicationAction, ReplicationOptions replicationOptions) throws Repli

我正在AEM中编写一个预处理器。这是一个在激活页面之前运行的类。当一个页面被激活时,我应该使用
com.day.cq.replication.Replicator
服务手动激活另一个页面

但是我非常依赖页面的完整路径,包括选择器。 我的页面是

当我使用

@Override
    public void preprocess(ReplicationAction replicationAction, ReplicationOptions replicationOptions) throws ReplicationException {
        String payloadPath = replicationAction.getPath();
变量有效载荷路径保存值
/content/xxx/americas/US/en/shop/products

如您所见,它不显示选择器和扩展名。 如何在预处理器中获取完整路径。如果这是一个servlet,我将从SlingHttpRequest中提取路径。但这里的情况不同

我需要这些选择器和扩展,因为根据它们的值,我的任务是激活其他页面

如何在AEM 6.2中实现这一点


我指的是这个问题-

问题是,选择器只有在请求页面时才可用。在工作流和复制API中,您只能访问资源路径,不能访问请求数据。你也只激活资源,你怎么知道需要什么选择器?@Thomas谢谢你提供的信息。但是你看,当激活页面被调用时,我真的需要选择器。有什么方法可以做到这一点吗?复制始终与资源关联,而选择器是AEM中HTTP请求的属性,因此您将无法从预处理中访问这些资源。在AEM中,复制与选择器和扩展不关联。您总是复制资源。为什么它必须基于选择器?请记住,具有唯一节点路径的单个资源可以通过多个扩展和选择器访问,因此无论您的选择器是什么,您都将始终使用将被激活的同一资源。因此,激活/content/a.sel.html将与激活/content/a.sel2相同。json@Oliver没有带选择器的页面。选择器字符串是HTTP请求的属性,该请求可能是呈现页面的请求,也可能不是呈现页面的请求。如果用户可以使用不同的选择器请求页面,并根据所选的选择器获得不同的图像,则您需要将可能使用的每个图像(对于每个可能的选择器)与页面一起激活。