当组件第一次被放到页面上时,如何更改AEM创建的节点的名称?
我试图弄清楚,当我第一次将组件放到页面上时,是否可以自定义AEM创建的节点的名称 定义我的组件的cq:Component节点名为“知识中心问题”,当我删除它时,AEM使用其默认命名逻辑在页面的节点树中创建一个名为“知识中心问题”的节点。我更希望节点名在删除时为“question”(但我不希望重命名组件本身)当组件第一次被放到页面上时,如何更改AEM创建的节点的名称?,aem,jcr,Aem,Jcr,我试图弄清楚,当我第一次将组件放到页面上时,是否可以自定义AEM创建的节点的名称 定义我的组件的cq:Component节点名为“知识中心问题”,当我删除它时,AEM使用其默认命名逻辑在页面的节点树中创建一个名为“知识中心问题”的节点。我更希望节点名在删除时为“question”(但我不希望重命名组件本身) 考虑到AEM中的一切都是可定制的,这种事情似乎是可能的,但我正在努力寻找答案。您需要编写一个定制的Sling后处理器。在页面中删除组件后调用Sling后处理器。示例代码: @Componen
考虑到AEM中的一切都是可定制的,这种事情似乎是可能的,但我正在努力寻找答案。您需要编写一个定制的Sling后处理器。在页面中删除组件后调用Sling后处理器。示例代码:
@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());
}
}
组件(service=SlingPostProcessor.class,immediate=true,name=“com.aem.CustomPostProcessor”)
公共类CustomPostProcessor实现SlingPostProcessor{
@凌驾
公共无效进程(SlingHttpServletRequest请求、列表修改)引发异常{
如果(接受(请求)){
最终资源=request.getResourceResolver().getResource(request.getResource().getPath());
//你的逻辑
modifications.add(Modification.onCreated(resource.getPath());
}
}
受保护的布尔接受(SlingHttpServletRequest请求){
返回“/my/resource/type”.equals(request.getResource().getResourceType());
}
}
您需要编写一个自定义后处理器。在页面中删除组件后调用Sling后处理器。示例代码:
@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());
}
}
组件(service=SlingPostProcessor.class,immediate=true,name=“com.aem.CustomPostProcessor”)
公共类CustomPostProcessor实现SlingPostProcessor{
@凌驾
公共无效进程(SlingHttpServletRequest请求、列表修改)引发异常{
如果(接受(请求)){
最终资源=request.getResourceResolver().getResource(request.getResource().getPath());
//你的逻辑
modifications.add(Modification.onCreated(resource.getPath());
}
}
受保护的布尔接受(SlingHttpServletRequest请求){
返回“/my/resource/type”.equals(request.getResource().getResourceType());
}
}
看一看
:nameipts
,它可以作为POST参数发送到SlingPostServlet
:看一看:nameipts
,它可以作为POST参数发送到SlingPostServlet
: