如何在Velocity模板中获取动态属性

时间:2018-03-26 08:10:02

标签: java velocity

当我使用Velocity Template进行编码时,我遇到了一个棘手的问题。

#set($key = "")

$ key是一个动态变量。

所以当我想获得另一个属性为$ key的变量的属性时。我该怎么办?

#set($temp = #evaluate("$data.$key");

#set($temp = $data.$key);

所有这些都无效。 请帮帮我!!!

3 个答案:

答案 0 :(得分:0)

要访问其他速度变量属性,您只需将其作为$variableName.propertyName处理即可。见velocity properties。在你的情况下:

#set($temp = $data.key);

我甚至不知道这种内置的反射功能 ClassTool速度工具支持反射但不允许执行:

  

它没有考虑到代码的反射执行而设计,因此没有为代码执行提供任何工具,也没有直接访问实际方法

答案 1 :(得分:0)

由于传递的字符串分两步进行评估,因此您需要在第一步中转义第一个美元(带反斜杠)和引号(通过加倍)。你会这样做:

#set($temp = "#evaluate(""\$data.$key"")")

答案 2 :(得分:0)

您可以使用get()

#set( $temp = $data.get($key) )