Liferay 速度模板和结构。获得 Children 个 Children 个?
Liferay Velocity Templates & Structures. Get Children of Children?
我正在使用 Liferay 6.1 中的结构和模板。
当试图获取 children 行时,似乎使用循环访问信息的唯一方法是使用类似于以下的代码:
#foreach
($this in $example.getSiblings())
<h2>$this.getData()</h2>
<p>$this.getChildren().get(0).getData()</p>
#end
有谁知道如何访问 children 的 children 的数据?我已经尝试通过 Velocity user-guide 搜索示例,但无法正常工作。
如果有人能给我指出正确的方向或link一些他们认为可行的代码,我们将不胜感激。
非常感谢,
周杰伦
#foreach ( $item in $allItems )
#set( $childrenFirstLevel = $item.getChildren())
#foreach ( $childFirstLevel in $childrenFirstLevel)
#set( $childrenSecondlevel = $childFirstLevel.getChildren())
#foreach ($childSecondLevel in $childrenSecondLevel)
<p>$childSecondLevel.data</p>
#end
#end
#end
您只需要嵌套迭代来获取子项的子项,这在每种编程语言中都适用。
@jkonst 给出了正确答案。这里有一些额外的信息,供您更多地探索速度。考虑只使用 $this.getChildren().getClass().getName()
- 这将打印支持 Java 对象的 class,为您提供更多关于如何处理它的提示。与 $this.getChildren().get(0).getClass().getName()
.
相同
当然,您只会使用它来探索和调试您的速度模板,但它有助于了解如何处理各个对象。
以防万一其他人遇到这个问题。解决方案似乎是
$this.getChildren().get(3).getChildren().get(1).getData()
根据child的位置替换括号中的数字。
我正在使用 Liferay 6.1 中的结构和模板。 当试图获取 children 行时,似乎使用循环访问信息的唯一方法是使用类似于以下的代码:
#foreach
($this in $example.getSiblings())
<h2>$this.getData()</h2>
<p>$this.getChildren().get(0).getData()</p>
#end
有谁知道如何访问 children 的 children 的数据?我已经尝试通过 Velocity user-guide 搜索示例,但无法正常工作。
如果有人能给我指出正确的方向或link一些他们认为可行的代码,我们将不胜感激。
非常感谢,
周杰伦
#foreach ( $item in $allItems )
#set( $childrenFirstLevel = $item.getChildren())
#foreach ( $childFirstLevel in $childrenFirstLevel)
#set( $childrenSecondlevel = $childFirstLevel.getChildren())
#foreach ($childSecondLevel in $childrenSecondLevel)
<p>$childSecondLevel.data</p>
#end
#end
#end
您只需要嵌套迭代来获取子项的子项,这在每种编程语言中都适用。
@jkonst 给出了正确答案。这里有一些额外的信息,供您更多地探索速度。考虑只使用 $this.getChildren().getClass().getName()
- 这将打印支持 Java 对象的 class,为您提供更多关于如何处理它的提示。与 $this.getChildren().get(0).getClass().getName()
.
当然,您只会使用它来探索和调试您的速度模板,但它有助于了解如何处理各个对象。
以防万一其他人遇到这个问题。解决方案似乎是
$this.getChildren().get(3).getChildren().get(1).getData()
根据child的位置替换括号中的数字。