我正在使用velocity模板生成一些字符串并将对象类型传递给上下文。
我想将该对象强制转换为特定的类是否有任何方法可以实现此目的?
答案 0 :(得分:3)
通常,您将在Java端处理此类任务,而不是在模板端处理。
尽管如此,如果你不使用SecureUberspector,它是可行的(但真的是hackish ......):
#set($casted = $someObject.class.forName('target.class.name').cast($sourceObject))
答案 1 :(得分:1)
Claude Brisson的回答是有效的,但是从Velocity 1.6及更高版本开始,它可以做得更简单一些,而不使用Class.forName()
,它可以在编译时创建不可见的类的依赖。
假设我想将某些内容投射到String
。在Java中:
context.put("String", String.class);
然后在Velocity中我可以使用:
#set($casted = $String.cast($sourceObject))