是否可以在模板中获取变量列表并使用列表填充它们? 我希望我的用户创建他们的模板,这意味着我不会事先知道哪些变量可用?
编辑:
在我的模板中,用户将决定打印的内容。如
$用户 $ latest
但是从我的应用程序中我不知道模板中使用了哪些变量。我希望获得一个列表,例如[users latest],其中包含模板中的所有变量,以便我可以根据用户规范填写它们。
答案 0 :(得分:1)
您可以通过呈现模板并使用构建列表的ReferenceInsertionEventHandler来收集列表。但问题是模板是否包含以下内容:
#if( $foo ) $bar #else $woogie #end
您的事件处理程序只会看到$ bar或$ woogie,而不是两者。
这个不受支持(可能过时)的课程可能有所帮助:
http://svn.apache.org/viewvc/velocity/engine/branches/1.x/experimental/templatetool/
答案 1 :(得分:0)
我认为在不覆盖某些速度等级的情况下,有一种简单的方法可以做到这一点。
以下是我将如何做的一些选项:
<!--%%__VARS__%%users,latest%%__VARS__%%-->
答案 2 :(得分:0)
Here有一些讨论和想法可以解决这个问题。首选选项基本上是为生成的模板AST实现walker。不是微不足道的。
答案 3 :(得分:0)
如果你不记得它,我发现这个衬垫(保存为片段)。
## #foreach($key in $context.keys) <pre> $key</pre> #end
希望它有所帮助...
哦,删除评论时的##