使用节点标识符的Adobe CQ5.5传递资源引用

时间:2013-12-11 20:24:02

标签: cq5 jcr sling

我正试图通过它的标识符来检索jcr资源。基本上我正在做以下事情。

COMPONENT1

String compID = resource.adaptTo(Node.class).getIdentifier();

然后当它传递给component2时,我想检索component1。如果它有助于我通过查询字符串参数传递标识符,以帮助支持其他一些客户端要求。

COMPONENT2

//code to get id from query string
//want to do something like:

Node resNode = resourceResolver.adaptTo(Node.class);
Session jcrSession = resNode.getSession();
Resource myRes = jcrSession.getNodeByIdentifier(eventId).adaptTo(Resource.class);

//use myRes as I please.

第二个例子当然不起作用,我意识到Node没有适应支持。所以我或多或少好奇,如果有人能够阐明我如何能够完成我的component2示例未能做到的事情。

谢谢你, 布罗迪

1 个答案:

答案 0 :(得分:2)

您应该ResourceResolver直接调整为Session。然后通过标识符获取节点。无法从Resource创建Node,因此请使用Node路径并从Resource获取ResourceResolver

Session jcrSession = resourceResolver.adaptTo(Session.class);
Node node = jcrSession.getNodeByIdentifier(eventId);
Resource resource = resourceResolver.getResource(node.getPath());