【发布时间】:2016-09-12 17:54:26
【问题描述】:
我正在使用速度模板生成一些字符串并将对象类型传递给上下文。
我想将该对象转换为特定的类,有什么方法可以实现吗?
【问题讨论】:
我正在使用速度模板生成一些字符串并将对象类型传递给上下文。
我想将该对象转换为特定的类,有什么方法可以实现吗?
【问题讨论】:
通常,您会在 Java 端处理此类任务,而不是在模板端。
尽管如此,如果您不使用 SecureUberspector,它是可行的(但确实是 hackish...):
#set($casted = $someObject.class.forName('target.class.name').cast($sourceObject))
【讨论】:
Claude Brisson 的答案有效,但从 Velocity 1.6 及更高版本开始,它可以做得更简单一些,并且不使用 Class.forName() 可以创建对在编译时不可见的类的依赖。
假设我想将某些内容投射到String。在 Java 中:
context.put("String", String.class);
然后我可以在 Velocity 中使用:
#set($casted = $String.cast($sourceObject))
【讨论】: