Java 如何在aem中导航/浏览下一页/上一页?
我正在AEM 6.3中开发页面。现在我有一个情况,以发展一个网页,其中包含2个链接,浏览到下一个和上一个网页与各自的当前网页。假设我的项目站点下有3个页面/content/project/enJava 如何在aem中导航/浏览下一页/上一页?,java,aem,Java,Aem,我正在AEM 6.3中开发页面。现在我有一个情况,以发展一个网页,其中包含2个链接,浏览到下一个和上一个网页与各自的当前网页。假设我的项目站点下有3个页面/content/project/en 第A页 第B页 第C页 让我们假设,如果我在第B页,那么我的下一页应该是第C页,上一页应该是第A页。这两个链接(下一个/上一个)应该将我重定向到页面A和页面B 可能有很多方法可以做到这一点,但我想的是,我将发出一个ajax get请求,它将以键/值格式返回下一页和上一页。为此,我将使用SlingSer
- 第A页
- 第B页
- 第C页
我想要一个简单的解决方案来实现这一点。或者aem中有任何插件可以做到这一点?我还尝试在中使用currentPage.nextSibling()来实现这一点,但aem中不存在这种情况。一种可能的解决方案是创建一个-
- 可以在页面上调用
- 将页面路径(使用page.listChildren())作为JSON数组返回
listChildren.jsp
listChildren
和扩展名json
创建一个基于resourceType的servlet。ResourceType是页面的ResourceTypemyapp/page/testpage
find('path/to/current/page)
)。一旦有了索引,就可以使用index-1&index+1获取上一页和下一页的路径
注意-如果您对网站url使用短路径,请确保JSON也返回短路径,作为添加的新要求,下一个/上一个链接上的页面应在创建日期与当前页面的相应位置排序。所以我提出了以下解决方案 我创建了一个组件名“Next Previous Pagination”,并使用htl语言中的WCMUsePojo模型。该模型负责获取当前页面的下一页和上一页。以下是获取下一页和上一页的jcr查询 下一页
select page.* from [cq:Page] AS page WHERE
ISDESCENDANTNODE(page,'/content/project/myCurrentPage')
AND page.[jcr:content/jcr:created] >= CAST('${createdDateOfCurrentPage}' AS
DATE) AND NAME(page) <>'${currentPageName}' ORDER BY page.
[jcr:content/jcr:created] asc Limit 1
从[cq:page]中选择page.*作为页面,其中
IsDescendatNode(第页“/content/project/myCurrentPage”)
和页面。[jcr:content/jcr:created]>=CAST(“${createdDateOfCurrentPage}”作为
日期)和名称(页面)${currentPageName}按页面顺序排列。
[jcr:content/jcr:created]asc限制1
对于上一页
select page.* from [cq:Page] AS page WHERE
ISDESCENDANTNODE(page,'/content/project/myCurrentPage')
AND page.[jcr:content/jcr:created] <= CAST('${createdDateOfCurrentPage}' AS
DATE) AND NAME(page) <>'${currentPageName}' ORDER BY page.
[jcr:content/jcr:created] desc Limit 1
从[cq:page]中选择page.*作为页面,其中
IsDescendatNode(第页“/content/project/myCurrentPage”)
和页面。[jcr:content/jcr:created]您可以使用page.listChildren()然后在页面间移动。用户可以使用它,但我必须在每个页面上迭代page.listChildren()。如果我没说错的话,那也会很费时。@JunaidZubair不,listChildren()
在这种情况下比查询要快,因为您只列出了第一级子级。请参阅最佳实践中概述的内容。@JunaidZubair您的页面最终将缓存在dispatcher中。因此,如果路径;设置正确。这可以解决问题,但我有了新的要求。现在,我必须在页面的创建日期获取关于某些标准的下一页/上一页。