@Model(
adaptables = {Resource.class, SlingHttpServletRequest.class},
resourceType = HeaderNavigation.RESOURCE_TYPE,
defaultInjectionStrategy = DefaultInjectionStrategy.OPTIONAL)
public class HeaderNavigation {
protected static final String RESOURCE_TYPE = "xxx";
@Inject
private Page currentPage;
@Getter
@Setter
private List<SubPageModel> subPages;// SubPageModel contains title, link and List<SubPageModel>
@PostConstruct
protected void init() {
getSub();
}
public void getSub(){
List<SubPageModel> subPage = new ArrayList<>();
Iterator<Page> pageIterator = currentPage.listChildren();
while(pageIterator.hasNext()){
Page LOnePage = pageIterator.next();
if(isHide(LOnePage))
continue;
Iterator<Page> LTwoList = LOnePage.listChildren();
List<SubPageModel> sub = new ArrayList<>();
while(LTwoList.hasNext()){
Page LTwoPage = LTwoList.next();
if(isHide(LTwoPage))
continue;
sub.add(new SubPageModel(LTwoPage.getTitle(),LTwoPage.getPath(),null));
}
subPage.add(new SubPageModel(LOnePage.getTitle(),LOnePage.getPath(), sub));
}
setSubPages(subPage);
}
private boolean isHide(Page page){
Object hideInNav = page.getContentResource().getValueMap().get("hideInNav");
return hideInNav == null ? false : true;
}
}
Page page = context.pageManager().getPage(destPath);
context.registerService(Page.class, page);
原文:https://www.cnblogs.com/lwxx/p/14689338.html