2013-04-04 2 views
2

나는 완전히 사과하기 때문에 사전에 사과드립니다. CQ5의 인스턴스가 으로 설정되어 있고 특정 노드에 액세스하는 방법을 알 수 없습니다. 그래서 나는 경로 구성 요소가 있다고 가정 : /프로젝트/구성 요소/컨텐츠/leftsidebar 을하지만 난 여기에 다른 노드의 속성에 액세스하려면 : /컨텐츠/댐/캠페인 나는 알고CQ5 - 노드에 액세스하는 슬링

을 properties.get 메소드는 해당 노드 내에서만 작동합니다. properties.get ("title", "placeholder");

전 newb이므로 게시물 코드 샘플을 작성하십시오.

감사합니다.

답변

5

찾고있는 리소스를 얻으려면 ResourceResolver을 사용하고 싶을 것입니다.

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

당신은 Apache Sling website의 속성에 액세스하는 방법에 대한 자세한 내용을보실 수 있습니다하십시오 ValueMap &이 속성을 읽으려면 여기에서, 당신은 그것을 적용 할 수 있습니다. 기억하십시오. CQ5는 슬링 아래에 있습니다. 따라서 훌륭한 리소스입니다. & 당신은 여전히 ​​JCR에 직접 액세스 할 수있는 추상 수준입니다.

+0

@anotherdave에 답해 주셔서 감사합니다. 왜이 오류가 발생하는지 어떤 생각 : ** ResourceResolver는 유형으로 해결할 수 없습니다 ** 추가 패키지를 포함해야합니까? 죄송합니다. 전이 물건에 대한 완전한 신조입니다. –

+3

스크립트에서 org.apache.sling.api.resource.ResourceResolver 인터페이스를 가져와야합니다. –

+0

고맙습니다 @bertrand 왜이 오류가 발생하는지 자세히 알아보기 ** 중복 지역 변수 resourceResolver ** –

관련 문제