我正在使用 Velocity (1.5) 使用模板+数据源生成一些文本。
我需要处理新行,因为合并结果不是 HTML 而是文本。
我有这种模板(beanInContext 是一个数据矩阵,就像一个 excel 电子表格)
[begin TPL]
$beanInContext.prepare("someData");
$beanInContext.anotherOperation(1234);
#foreach( $row in $beanInContext.rows() )
#foreach($data in $row.data())
$data
#end
#end
[end TPL]
我希望合并结果是这样的:
a1 b1 c1
a2 b2 c2
...
但是我得到了类似的东西:
a1
b1
c1
a2
b2
c2
...
当使用类似的模板引擎时freemarker ,我使用 <#compress> 指令来实现这种格式。
有人知道如何配置速度引擎来避免这种回车困惑吗?
最佳答案
Velocity 与 JSP 非常相似,目前不提供空白管理方面的实际帮助。它已被广泛讨论,但还没有人着手实现该功能。您会发现使用 JTidy 之类的工具对 Velocity 输出进行后处理要好得多。期望看到 Velocity 2.0 在空白处理方面的改进,但按照这个速度,几年内不要期望 Velocity 2.0。工作很慢。
如果空格控制很关键,并且后处理不是一个选项,我会建议使用 Freemarker。
如果您必须使用 Velocity,请注意 1.5 存在一些严重的性能问题。我强烈建议升级到 1.7。
关于java - 如何配置 Velocity 模板引擎以避免在合并结果中自动回车?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5788426/