如何嵌套Velocity自定义指令?

时间:2015-07-07 02:36:29

标签: java velocity

我已经在Velocity中创建了两个用于国际化的自定义指令,另一个用于日期格式化。他们自己工作得很好,但是现在我需要将一个嵌套在另一个中:

#msg('a_resource','TODAY',#date(1234567890900,'date')))!

然而,由于我得到以下异常,这并不起作用。

org.apache.velocity.exception.ParseErrorException: Invalid arg #2 in directive #msg at dateTemplate[line 1, column 5]

如何调用#date指令并将其传递给另一个指令?

2 个答案:

答案 0 :(得分:0)

您需要在指令调用周围添加双引号:"

#msg('a_resource','TODAY',"#date(1234567890900,'date')"))!

Velocity将使用双引号评估任何内容(如变量,方法,以及此处所需的:指令)

请参阅:https://velocity.apache.org/engine/releases/velocity-1.5/user-guide.html#stringliterals

答案 1 :(得分:0)

使用:

#msg('a_resource','TODAY',"#date(1234567890900,'date')"))!