在另一个中使用一个速度模板的输出

时间:2012-07-02 16:28:15

标签: velocity confluence vtl

我有一个速度模板(在Confluence用户宏中),如下所示:

## This macro takes a jiraissues macro in the body with "Show Total Only" configured to TRUE.
## It then parses the return and puts a green check if the number returned is ZERO or a red X otherwise.
## @noparams 

#set ($start = $body.indexOf("{") + 1)
#set ($end  = $body.indexOf("}") )

Printf debugging...<br />
body.substring($start, $end) = $body.substring($start, $end) <br />

<ac:rich-text-body>
  <ac:image ac:thumbnail="false">
## BUG BUG This substring is ALWAYS zero.  Dunno why.
  #if ($body.substring($start, $end) == "0")
    <ri:url ri:value="/images/icons/emoticons/check.png" />
  #else
    <ri:url ri:value="/images/icons/emoticons/error.png" />
  #end
  </ac:image>
</ac:rich-text-body>

此模板具有嵌套的其他速度模板,用户可以使用该模板查询数据库并返回与某些条件匹配的错误数。这个想法是,如果返回的数字是ZERO,那么一切都是hunkydory。否则,嗯......你明白了。

现在,我的想法中有一些东西被搞砸了。

  1. $ body字符串似乎返回类似{0} issues的内容。
  2. {0}似乎是变量或其他东西,但如果我能找到任何文档,那就太好了。
  3. 问题

    • 首先评估哪个模板?
    • 我是否可以将一个模板的逻辑基于另一个模板的输出?
    • 为什么我的生活是这样的?没关系,我知道那个答案。

1 个答案:

答案 0 :(得分:1)

{0}这样的字符串表明你所看到的不是实际的最终结果,而是一个应该用实际数据填充的消息模板。对我来说,它看起来像MessageFormat使用的密钥,但它可能是其他东西。

您是否碰巧拥有内部宏的代码?