【发布时间】:2013-06-06 18:36:51
【问题描述】:
我们公司已经开始使用Confluence wiki 作为我们团队的文档站点,并且我们正在实施一个名为PocketQuery 的宏。
此宏将 SQL 数据动态拉入网站(我们正在提取网站联系人等信息)。
它使用Velocity Templates 来显示它的数据,但是我在进行简单的数组索引时遇到了问题。
代码:
#set ( $page = $additionalParams.get('Page') )
#set ( $pages = "" )
#if ( $page != $null && $page != "" )
#set ( $pages = $page.split(";") )
#else
#set ( $pages = [] )
#end
$additionalParams 是一个在模板外部初始化的列表,包含传递给宏的参数,在这种情况下:
页面=站点名称;服务器
我正在尝试设置的代码是从$additionalParams 列表中提取Name;Server 值,如果该值不为空,则拆分该值,然后获取第一个值。
我试过了:
$pages.get(1)
$pages[1]
但是没有任何值被提取(我也尝试将零作为索引 - 结果相同)。
遍历这个数组并打印每个条目确实有效 - 这意味着那里有有个值。
我想要做的就是索引到数组中 - 无论如何似乎都无法挖掘。
能否将其转换为列表,以便使用$pages.get 方法对其进行索引?
扩展这是否允许我使用$pages.contains 方法?
Confluence 使用的是 Velocity 1.6。
编辑:
The solutions on this page 和 on this page 不起作用 - 我猜测(疯狂地)可能正确的对象不在模板使用它们的上下文中?
(PocketQuery 或 Confluence 会这样做吗?)
我将如何使用“ListTool”?
【问题讨论】:
-
$page != $null || $page != ""似乎错了 - 我想你想在那里使用&&。 -
你是对的@PaulBellora,会解决这个问题,但是我之前访问过你的第二个链接,但没有一个解决方案有效
-
这可能不是问题,但您可以使用
$pages.get(0)来获取第一个值,因为数组具有从零开始的索引。 -
我都试过了——都不管用。
标签: arrays velocity confluence