在jar库中添加freemarker宏

时间:2011-06-09 08:30:17

标签: java freemarker

如何在java jar库中添加一些freemarker宏(< #macro myMacro> ...),然后在我的其他Web项目中使用它(< @macro myMacro />)?

1 个答案:

答案 0 :(得分:2)

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

步骤2:配置FreeMarker,以便它可以从该JAR库加载模板。一种方法是注册ClassTemplateLoader,方法是调用Configuration.setClassForTemplateLoading或直接注册ClassTemplateLoader(请参阅FreeMarker documentation about template loading)。或者,您可以尝试使用URLTemplateLoader或致电Configuration.setServletContextForTemplateLoading,具体视您的使用情况而定。

您甚至可能需要将此类ClassTemplateLoader / URLTemplateLoader与当前使用的模板加载器结合使用,以便从多个位置加载模板(请参阅MultiTemplateLoader)。

第3步:通过import directive将宏模板文件导入主模板的名称中,例如

<#import "foo.ftl" as foo>

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

<@foo.bar />

完成!