如何在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/