如何在java jar库中添加一些freemarker宏(< #macro myMacro> ...),然后在我的其他Web项目中使用它(< @macro myMacro />)?
答案 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 />
完成!