디렉토리/content/abc에있는 모든 페이지를 나열하고 싶습니다.AEM : 고정 디렉터리 (JSP)의 모든 페이지를 나열하는 방법은 무엇입니까?
이 디렉토리에 정확히 존재하는 페이지에만 관심이 있습니다 (하위 하위 폴더에는 없으며 하위 페이지는 없습니다).
누군가 내가 이것을 달성하는 데 사용할 수있는 JSP 코드를 제공 할 수 있습니까?
감사합니다.
디렉토리/content/abc에있는 모든 페이지를 나열하고 싶습니다.AEM : 고정 디렉터리 (JSP)의 모든 페이지를 나열하는 방법은 무엇입니까?
이 디렉토리에 정확히 존재하는 페이지에만 관심이 있습니다 (하위 하위 폴더에는 없으며 하위 페이지는 없습니다).
누군가 내가 이것을 달성하는 데 사용할 수있는 JSP 코드를 제공 할 수 있습니까?
감사합니다.
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
}
}
해당 디렉토리도 페이지입니까? 그렇다면, 당신은 그와의 페이지 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
}
[삭제] ........ – user3444873
아니요. 코드가 잘못되었습니다. 페이지뿐만 아니라 모든 하위 리소스를 나열합니다. 반면, 질문은 디렉토리에있는 페이지 만 필요하다는 것을 의문의 여지가 있습니다. – rakhi4110
그러나/content/abc는 페이지가 아니므로 Iterator 호출이 실패합니다. –
user3444873