2013-12-11 24 views
1

我試圖找出通過它的標識符檢索jcr資源。基本上我正在做以下事情。Adob​​e CQ5.5使用節點標識符繞過資源引用

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. 

課程的第二個示例不工作,我認識到,節點沒有adaptTo支持。所以,如果有人能夠闡明我如何才能完成我的組件2的例子沒有做到的事情,我或多或少好奇。

謝謝你, 布羅迪

回答

2

您應該直接適應ResourceResolverSession。然後通過標識符獲取節點。有沒有辦法從Node創建Resource,所以使用Node路徑,並從ResourceResolverResource

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

是啊,這是我落得這樣做:d – Brodie

+0

我很驚訝的是,有沒有實用工具類或CQ中提供更有效的方式獲取基於節點的資源的任何內容。 CQ5.6的情況仍然如此嗎? – radicaledward101