当我使用Velocity Template进行编码时,我遇到了一个棘手的问题。
#set($key = "")
$ key是一个动态变量。
所以当我想获得另一个属性为$ key的变量的属性时。我该怎么办?
#set($temp = #evaluate("$data.$key");
或
#set($temp = $data.$key);
所有这些都无效。 请帮帮我!!!
答案 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) )