代码之家  ›  专栏  ›  技术社区  ›  Robert Mark Bram

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

  •  1
  • Robert Mark Bram  · 技术社区  · 14 年前

    我正在开发一个DOTCMS项目,我们正在编写HTML、JavaScript和Tele-但是没有Java(没有必要)。

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

    问题是,我需要将此列表和pageContent()宏分页 只有 接受查询,而不是列表。我查看了dotMSMLab溴e.VM中的μPaCeCubon()宏的来源,发现它调用Java:CordunsWEBAPI。PaPeCuGeNon(),而它只接受一个查询。

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

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

    2)编写我自己的CordsWestBAPI .PACECONTRONTY()的Java实现,坦白地说这听起来像是过度的(可能只是漫长而痛苦的道路上的第一步)。

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

    1 回复  |  直到 12 年前
        1
  •  2
  •   Will Ezell    14 年前

    在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变量,并使用它来获取子列表等。