如何验证Freemarker模板?

3

我是Freemarker的新手,正在使用它来创建电子邮件模板。我需要将模板存储在数据库中以便以后使用,在存储之前,我想验证Freemarker模板是否有效。那么有没有办法做到这一点呢?


一个有效的模板应该具备哪些特点?它是否使用了所有预定的模板键或者在运行模板时没有尝试使用任何未被传递的键? - Jason Sperske
有效模板的质量:它没有语法错误,验证模块也会给出消息,例如如果 $ 丢失。我想在运行和与数据协作之前验证模板。 - Raj
1个回答

5

如果你只想知道模板是否存在语法错误,你可以调用 Template(String, String, Configuration) 构造函数并查看它是否抛出异常。


在我的使用Freemarker的Web应用程序中(我有一个CMS和一些电子邮件系统),我只是展示了一个带有占位符值的测试渲染。这似乎是人们在承诺模板之前进行合理性检查的最简单方法。 - Jason Sperske
有没有办法进行数据模型验证? - Jackson Kelley
@JacksonKelley 不,因为通常在解析期间无法找到模板将访问哪些变量。除非您严格限制使用的语言功能。 - ddekany
1
我并不想在解析时执行它,而是任何时候都可以。给定一个模板和数据模型,模板中的所有元素是否存在于数据模型中?这可能吗?我实际上正要写我的自己的代码。 - Jackson Kelley
除非实际执行模板,否则无法确定将访问哪些数据模型变量。否则几乎不可能确定,除非是非常简单的模板。 - ddekany

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接