list<model>

时间:2021-04-22 15:33:37   收藏:0   阅读:10

Java

@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;
    }
}

Test

        Page page = context.pageManager().getPage(destPath);
        context.registerService(Page.class, page);

原文:https://www.cnblogs.com/lwxx/p/14689338.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!