![](/img/trans.png)
[英]Atlassian JIRA Plugin Development: How to make variables available to velocity templates
[英]Apache Velocity: Which variables are available in templates?
是否可以获取模板中的变量列表并使用列表填充它们? 我希望用户创建他们的模板,这意味着我事先不知道会有哪些变量可用?
编辑:
在我的模板中,用户将决定要打印的内容。 如
$ users $ latest
但是从我的应用程序中,我将不知道模板中使用了哪些变量。 我想要一个列表,例如[users Latest],其中包括模板中的所有变量,以便我可以根据用户规范进行填写。
您可以通过渲染模板并使用构建列表的ReferenceInsertionEventHandler来收集列表。 但是,问题在于模板是否具有以下内容:
#if( $foo ) $bar #else $woogie #end
您的事件处理程序只会看到$ bar或$ woogie,而不会两者都见。
这个不受支持(也许已经过时)的类可能会有所帮助:
http://svn.apache.org/viewvc/velocity/engine/branches/1.x/experimental/templatetool/
这里有一些讨论和想法可以解决这个问题。 首选选项基本上是为模板的生成的AST实现walker。 不平凡。
我认为没有覆盖某些速度类的简单方法就可以了。
这是我的一些选择:
<!--%%__VARS__%%users,latest%%__VARS__%%-->
如果您不记得它了,我就找到了这支衬板(另存为片段)。
## #foreach($key in $context.keys) <pre> $key</pre> #end
希望能帮助到你 ...
哦,删除注释中的##
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.