2016-08-06 1 views

답변

1

Resource 클래스의 listChildren() 메소드를 사용하여 해당 디렉토리 아래의 모든 자원을 나열하십시오. 반복하여 자원이 페이지인지 확인하십시오.

Resource parentResource = resourceResolver.getResource("/content/abc"); 

Iterator<Resource> resources = parentResource.listChildren(); 
while (resources.hasNext()) { 
     Resource res = resources.next(); 
     if (res.adaptTo(Page.class) != null) { 
      //it's a page. Do stuff with this 
     } 
} 
+0

[삭제] ........ – user3444873

+0

아니요. 코드가 잘못되었습니다. 페이지뿐만 아니라 모든 하위 리소스를 나열합니다. 반면, 질문은 디렉토리에있는 페이지 만 필요하다는 것을 의문의 여지가 있습니다. – rakhi4110

+0

그러나/content/abc는 페이지가 아니므로 Iterator 호출이 실패합니다. – user3444873

0

해당 디렉토리도 페이지입니까? 그렇다면, 당신은 그와의 페이지 API를 사용할 수있는 페이지 # listChildren()의 라인을 따라 뭔가 : 디렉토리가 다음 rakhi4110의 대답과 좋은해야 페이지가 아닌 경우

Page thePage = resource.adaptTo(Page.class); 
if (thePage == null) { 
    //not a page, fail 
    return; 
} 
for(Iterator<Page> children = thePage.listChildren(); children.hasNext();) { 
    Page child = children.next(); 
    // do something 
} 

관련 문제