使用 freemarker 创建动态列表

Create dynamic list with freemarker

我想用freemarker建立一个动态列表。在(java)运行之前不知道会有多少关。 它应该看起来像

<ul>
  <li>....</li>
  <li>....</li>
  <ul>
    <li>...</li>
  </ul>
</ul>

我该怎么做?我只是得到一个 x 级别的静态列表...带有肮脏的嵌套循环,但有时我需要 20-25 个嵌套 ul 元素/级别。

我怎样才能动态地做到这一点?建议会很好 :)

使用 macro 递归调用。

使用 freemarker 很容易做到这一点,想一想在 Java 中如何做到这一点 - 使用递归。在这种情况下,您应该将每个模板视为一个函数,它具有您可以使用的参数。

创建一个只处理列表一级的新模板,然后如果存在另一个列表,则在此模板上再次调用渲染函数。

或者您可以使用宏,尽管这是我个人的偏好。