Java CQ5-Sling访问节点

Java CQ5-Sling访问节点,java,aem,sling,Java,Aem,Sling,我是个新手,所以我提前道歉。我已经设置了一个CQ5的实例 我不知道如何访问特定的节点。假设我有一个具有 路径: /project/components/content/leftsidebar 但我想在这里访问另一个节点的属性: /content/dam/campaign 我知道properties.get方法是有效的,但只有当您在该节点内时才有效 properties.get(“标题”、“占位符”) 我是一个完全的新手,所以请张贴代码样本是可能的 谢谢 您需要使用resourcesolver来获

我是个新手,所以我提前道歉。我已经设置了一个CQ5的实例 我不知道如何访问特定的节点。假设我有一个具有 路径: /project/components/content/leftsidebar 但我想在这里访问另一个节点的属性: /content/dam/campaign

我知道properties.get方法是有效的,但只有当您在该节点内时才有效 properties.get(“标题”、“占位符”)

我是一个完全的新手,所以请张贴代码样本是可能的


谢谢

您需要使用
resourcesolver
来获取您正在寻找的资源。从那里,您可以将其调整为
值映射
&读取其属性:

ResourceResolver resourceResolver = slingRequest.getResourceResolver();
Resource campaignResource = resourceResolver.getResource("/content/dam/campaign");
ValueMap campaignProperties = campaignResource.adaptTo(ValueMap.class);
String title = campaignProperties.get("title", "placeholder");

您可以在上阅读有关访问属性的更多信息。记住,CQ5是隐藏的,所以它是一个很好的资源&您仍然比直接访问JCR高出一个抽象级别。

感谢您回复@anotherdave。知道我为什么会遇到这个错误吗:ResourceResolver无法解析为一个类型我需要包含一个额外的包吗?很抱歉,我是这方面的新手。你需要在你的脚本中导入org.apache.sling.api.resource.resourcesolver接口。谢谢@bertrand我为什么会得到这个错误?重复的局部变量resourcesolverey@anotherdave碰巧知道我为什么会得到重复的局部变量resourcesolver谢谢@恶魔少年。我想说的是,你很可能在你的脚本或你正在包含的脚本中提到了“cq:defineObjects”或“sling:defineObjects”。它们已经公开了一个“resourceResolver”变量,因此您无需声明它。更多信息请点击这里-