有时速度不能代替

时间:2014-04-14 11:23:59

标签: java velocity template-engine

有时,以下代码会在模板中生成$position.getComment()。其他领域也一样。但这是偶然的行为。可能是什么原因以及如何解决?

#if($position.hasComment())
    <td>$position.getComment()</td>
#else
    <td class="empty">&mdash;</td>
#end

排名的评论是字符串,hasComment正在关注

public boolean hasComment() {
    return comment != null;
}

某些日志可能在Velocity启动时很有用

velocity - Velocimacro : allowInline = true : VMs can be defined inline in templates
velocity - Velocimacro : allowInlineToOverride = false : VMs defined inline may NOT replace previous VM definitions
velocity - Velocimacro : allowInlineLocal = false : VMs defined inline will be global in scope if allowed.

Velocity templates not substituting methods

1 个答案:

答案 0 :(得分:0)

尝试这样做:

#if (! $position.getComment() || "$position.getComment()" == "")
    <td class="empty">&mdash;</td>
#else
    <td>$position.getComment()</td>
#end

我是关于速度的新手,所以我无法完全解释你为什么,但我已经为一个新项目编写了两周的一些HTML模板,在我的团队中我们发现这种方式是最好的方法这样做。