如何在Java jar库中添加一些freemarker宏( ...),然后在其他Web项目中使用它()?

最佳答案

第1步:使用宏将模板文件嵌入JAR库中,例如带有宏foo.ftl的文件bar

步骤2:配置FreeMarker,以便它可以从该JAR库加载模板。一种实现方法是通过调用ClassTemplateLoader或直接注册Configuration.setClassForTemplateLoading(请参见FreeMarker documentation about template loading)来注册ClassTemplateLoader。另外,根据您的用例,您可以尝试使用URLTemplateLoader或调用Configuration.setServletContextForTemplateLoading

您甚至可能必须将这样的ClassTemplateLoader / URLTemplateLoader与当前使用的模板加载器结合使用,以便从多个位置加载模板(请参见MultiTemplateLoader)。

步骤3:通过import directive将宏模板文件从主模板导入到名称空间中,例如

<#import "foo.ftl" as foo>


步骤4:通过其名称空间调用宏,例如

<@foo.bar />


做完了!

关于java - 在jar库中添加freemarker宏,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6290065/

10-11 04:24