2017-01-11 20 views
1

私はAEM 6.2を使用していて、ノードの "jcr:content"から "damFolderPath"値を取得しようとしています。AEMのノードから "damFolderPath"を取得する方法は?

Screenshot

私はこれらを試してみました:

//resourcePath = "/content/projects/newyear-1" 
Resource resource = resourceResolver.getResource(resourcePath); 
Node tNode = resource.adaptTo(Node.class); 
Property prop = tNode.getProperty("jcr:content/damFolderPath"); 
log.info("\n...Output 1:"+tNode.hasProperty("damFolderPath")); 
log.info("\n...Output 2:"+prop.toString()); 

出力1:偽

出力2:不動産[PropertyDelegate {親= /コンテンツ/プロジェクト/ newyear-1 /キロ/ JCR:コンテンツ:{jcr:primaryType = nt:unstructured、detailsHref = /projects/details.html、jcr:title = kms、アクティブ= true、cq:template =/apps/swa/projects/templates/default、damFolderPath =/content/dam/projects/newyear-1/kms、 cリソースタイプ= cq/gui/components/projects/admin/card/projectcontent、リンク= {...}、ダッシュボード= {...}、overUrl =/content/dam/projects/newyear-1/kms/}、プロパティ= damFolderPath = /コンテンツ/ダム/プロジェクト/ newyear-1/kms}

私はそこにあることがわかりますが、output2からどうやって取得できますか?

答えて

3

JCR APIレベルを下回らずに値を読み取ることができます。

スリングの観点からは、jcr:contentは解決可能なリソースです。

String resourcePath = "/content/projects/newyear-1/jcr:content" 
Resource jcrContentResource = resourceResolver.getResource(resourcePath); 
ValueMap valueMap = jcrContentResource.getValueMap(); 
String damFolderPath = valueMap.get("damFolderPath", String.class); 

どんな理由であれ、あなたはJCRのAPIを使用して主張、場合、あなたは出力2で見る事は(toString()によって返される)Property実装のデフォルトString表現です。

インターフェイスPropertyを使用すると、タイプ固有の複数のゲッターのいずれかを使用してプロパティの値を取得できます。

prop.getString() 

/content/dam/projects/newyear-1

も参照してくださいあなたのパスを取得します:getValuegetDoublegetBooleangetDateなど

関連する問題