我怎样才能改变AEM创建当组件首次下降页面上的节点的名称?

问题描述 投票:0回答:2

我试图找出是否有可能自定义节点的AEM创建时,我首先删除网页上的组件名称。

对CQ:组件节点,在我的组件定义被命名为“知识中心问题”当我放弃它,AEM创建一个使用它的默认命名逻辑页面的节点树命名为“knowledge_center_que”节点。我宁愿为节点名称为“问题”时,它被丢弃(但我宁愿不重命名组件本身)。

好像这种事情必须能够给出是AEM一切是如何定制的,但我在努力寻找答案。

aem cq5 jcr
2个回答

0
投票

你需要写一个自定义的吊带后处理器。后一个组件在页面下降吊带后处理器被调用。示例代码:

@Component(service = SlingPostProcessor.class, immediate = true, name = "com.aem.CustomPostProcessor")
public class CustomPostProcessor implements SlingPostProcessor {
  @Override
 public void process(SlingHttpServletRequest request, List<Modification> modifications) throws Exception {

    if (accepts(request)) {
        final Resource resource = request.getResourceResolver().getResource(request.getResource().getPath());
        // Your logic
        modifications.add(Modification.onCreated(resource.getPath()));
    }
   }

   protected boolean accepts(SlingHttpServletRequest request) {
    return "/my/resource/type".equals(request.getResource().getResourceType());
    }

   }
© www.soinside.com 2019 - 2024. All rights reserved.