【问题标题】:Velocity template and java code insideVelocity模板和里面的java代码
【发布时间】:2013-05-26 10:44:51
【问题描述】:

可以在速度模板中使用 java 代码吗? 例如使用这个 int 模板:

double x = minutes/60 + (((minutes % 60)<=15)?0.0:((minutes % 60)<=45)?0.5:1.0);

【问题讨论】:

    标签: java templates velocity


    【解决方案1】:

    不,Velocity 只是一个简单的模板引擎,它打印任何无效的 Velocity 语法。

    但它确实支持计算,尽管操作要简单得多。这适用于 Velocity:

    #set ($x = $minutes / 60)
    #if ($minutes % 60 <= 15)
      #set ($x = $x + 0.0)
    #elseif ($minutes % 60 <= 45)
      #set ($x = $x + 0.5)
    #else
      #set ($x = $x + 1.0)
    #end
    

    【讨论】:

    • 好的,但是我不能在 Velocity 模板中使用 '%' ?无论如何我得到错误,并且双值有问题,如何通过?第 169 行第 51 列出现词法错误。遇到:“0”(48),之后:“.”
    • 它确实支持%。至少在现代版本中。您是否使用 Velocity 1.4 或更低版本?
    • @SergiuDumitriu 没有机会在模板中实例化一个对象,对吧?像#set ($myObj = new Object()) 这样的东西。如果不是,我想一种可能性是将实例化另一个对象的对象放入模板的上下文中。
    • @MatheusSantana 实际上,Velocity 中没有 new,但您可以在上下文中放置一个工厂对象。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-27
    • 2016-03-08
    • 1970-01-01
    • 2013-03-10
    • 2017-03-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多