[英]How to configure Velocity template engine to avoid automatic carriage return in merge result?
我正在使用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。
我可能没有这个完全正确,但这里是如何做到这一点的基本技巧:
> [begin TPL]
> $beanInContext.prepare("someData");
> $beanInContext.anotherOperation(1234);
> #foreach( $row in $beanInContext.rows() )
> #**##foreach($data in $row.data())##
> #* *#$data##
> #**##end##
> #end
> [end TPL]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.