【问题标题】:Velocity templates - Syntax for passing variables to methodsVelocity 模板 - 将变量传递给方法的语法
【发布时间】:2011-06-27 23:58:44
【问题描述】:

我正在尝试基于数据库查找构建“友好”电子邮件消息,但似乎无法确定以下内容的正确语法:

System.out.println(TagFunctions.getConstantValue(4, "val1", Integer.parseInt(selectedFiling.getRejectionReason())));

我意识到我可以在我的类文件中评估它,但希望能够在不再次部署的情况下进行数据库更改。

我相信我在这里遗漏了一些花括号,但我尝试过的任何方法都没有奏效。

$tagFunctions.getConstantValue(4, "val1", $Integer.parseInt($selectedFiling.rejectionReason))

【问题讨论】:

    标签: java velocity


    【解决方案1】:

    除非你这样做:

    context.put("Integer", Integer.class);
    

    那么$Integer 在您的模板中不是有效的引用。

    【讨论】:

    • 当然,其他参考资料也是如此。并且所有方法都必须在公共类中声明为公共的。
    【解决方案2】:

    请发布实际代码和/或堆栈跟踪。

    没有更多信息,这是我的第一个猜测。您是否正确填充上下文以便可以在 TagFunctions 和 Integer 上调用静态方法?有关更多信息,请参阅此链接:http://velocity.apache.org/engine/devel/developer-guide.html#supportforstaticclasses

    【讨论】:

    • 我相信上下文设置得当,因为这一行有效并引用了有问题的行中使用的相同对象:$tagFunctions.getFilingTypeLongString(${selectedFiling.filingType})
    • 实际上,第二个示例没有引用 $Integer,而您说您在调用 $Integer.parseInt 时遇到问题的行。如果您发布堆栈跟踪和代码示例,帮助会容易得多。否则每个人都将不得不猜测实际问题是什么。
    猜你喜欢
    • 1970-01-01
    • 2020-12-13
    • 2011-04-05
    • 1970-01-01
    • 1970-01-01
    • 2016-04-20
    • 2017-11-10
    • 2010-11-27
    相关资源
    最近更新 更多