dotCMS:如何对列表中的内容进行分页?

发布于 2024-09-17 23:00:26 字数 783 浏览 7 评论 0原文

我正在开发一个 dotCMS 项目,我们正在编写 HTML、Javascript 和 Velocity - 但没有 Java(目前还没有必要)。

在 dotCMS 中,我需要遍历两个关系以得出与实例结构 A 相关的结构 C 的所有项目的列表,其中结构 A 与结构 C 相关,结构 C 与结构 D 相关。很好,我已经完成了此操作并有一个列表我可以迭代的内容:http://pastebin.com/52uStcUA

问题是我需要对此列表进行分页,并且 #pageContent() 宏接受查询,而不是列表。我查看了 dotCMS_library.vm 中 #pageContent() 宏的源代码,发现它调用 Java:ContentsWebAPI.pageContent() - 而后者只接受查询。

据我所知,这给我留下了两个选择:

1)以某种方式对 #pageContent() 宏进行查询,表达传递关系的遍历。我知道如何为一种关系 (http://pastebin.com/cwLY0Av4) 编写查询,但不知道如何为两种关系编写查询。

2) 编写我自己的 ContentsWebAPI.pageContent() 的 Java 实现,坦率地说,这听起来有点矫枉过正(也许只是漫长而痛苦的道路上的第一步)。

那么,关于如何解决这个问题还有其他想法吗?

I am working on a dotCMS project where we are writing HTML, Javascript and Velocity - but no Java (there has been no need yet).

In dotCMS, I need to traverse two relationships to come up with a list of all items of Structure C related to an instance Structure A where Structure A relates to Structure C which relates to Structure D. Fine, I have done this and have a list of content that I can iterate through: http://pastebin.com/52uStcUA.

The problem is that I need to paginate this list and the #pageContent() macro only accepts a query, not a list. I looked into the source of the #pageContent() macro in dotCMS_library.vm and found that it calls to Java: ContentsWebAPI.pageContent() - which in turn only accepts a query.

As far as I can see, this leaves me with two options:

1) Somehow phrase a query for the #pageContent() macro that expresses traversal of a transitive relationship. I know how to write a query for one relationship (http://pastebin.com/cwLY0Av4) but not two.

2) Write my own Java implementation of ContentsWebAPI.pageContent(), which frankly sounds like overkill (and perhaps just the first step down a long and painful road).

So, any other ideas on how to solve this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

汹涌人海 2024-09-24 23:00:26

在 Velocity 中编写所需的分页逻辑应该相当容易 - Velocity 中的 $list 只是一个 java.util.ArrayList。

dotCMS 中包含的一个有用工具是 $listTool,请参阅:http://velocity.apache.org/tools/releases/velocity-tools-1.2/javadoc/org/apache/velocity/tools/generic/ListTool.html

这可以为您提供列表中的特定项目。您所需要的只是一些变量,例如 $page、$numShow 等...您可以在 url 中传递 $page 变量并使用它来获取子列表等...

It should be fairly easy to write the paging logic you need in velocity - the $list in Velocity is just a java.util.ArrayList.

A helpful tool that is included in dotCMS is the $listTool see: http://velocity.apache.org/tools/releases/velocity-tools-1.2/javadoc/org/apache/velocity/tools/generic/ListTool.html

This can give you specific items in your list. All you need are some variables like $page, $numShow, etc... You can pass around the $page variable in the url and use it to get sublists, etc...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文