【问题标题】:Converting Velocity template into FreeMarker using USCavalry converter使用 USCavalry 转换器将 Velocity 模板转换为 FreeMarker
【发布时间】:2017-09-29 23:53:58
【问题描述】:

我有大量的 Velocity 模板想要转换为 FreeMarker。

我发现了一个名为 USCavalry 的转换器工具,声称可以完成这项工作。

我在 IntelliJ 中将其设置为 Maven 项目,并将 Velocity 和 Freemarker 依赖项添加到我的 pom.xml。

该工具运行良好,但我对得到的输出不满意。它似乎是 AST 的标记化输出。正确的 FreeMarker 符号不会被替换。

还有其他人遇到过这个问题吗?为了获得有意义的 FreeMarker 模板作为输出,您做了哪些更改?

我将尝试修改源以输出 Velocity RuntimeServices.parse() 以外的其他内容,但我认为如果其他人已经解决了这个问题可能会有所帮助。

【问题讨论】:

    标签: java converter freemarker velocity


    【解决方案1】:

    USCavarlry 是一个非常简单的工具,而且也非常过时(链接的网页是一个 10 年前的快照,也许那时它已经过时了)。对于非常基本的事情,它似乎可以工作(至少对我来说,#if($x == 1)$y#end 被翻译成<#if x == 1>${y}</#if>)。即使在理论上也不可能进行正确的自动翻译,而且即使做到一半体面也将非常棘手(就像您必须考虑语义差异,例如在 if 条件中被视为逻辑正确的内容,必须识别广泛使用的调用Velocity 工具并将它们翻译成?xxx 表达式等)。据我所知,不存在这样的工具。因此,这主要是一项手动任务,需要手工制作正则表达式替换等等……或者您必须修改 USCavalry 源代码,以较快者为准。

    【讨论】:

    • 不,它甚至没有为我做那些基本的事情。但我很欣赏你的回答。知道这是一个手动过程是值得的。我已经开始手动操作了,但我认为可以使用工具来简化操作。感谢您的宝贵时间!
    猜你喜欢
    • 2016-11-28
    • 2011-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-06
    • 2012-06-11
    • 2012-11-22
    相关资源
    最近更新 更多