是否可以从zip文件中加载freemarker模板?
我想将所有模板压缩到一个文件中并将其放入我的应用程序中。
有可能吗?
答案 0 :(得分:0)
这可能不太理想,但如果您只是load the text of the zipped template个文件,则可以从String中实例化FreeMarkerTemplate。我给了你一个如何在下面完成它的例子,但我建议你也阅读the freemarker documentation。 (查看“入门”选项卡)
即
Configuration cfg = new Configuration();
//configuring default free marker configuration
cfg.setObjectWrapper(new DefaultObjectWrapper());
//construct template from string
String templateText = "";//load template text from zip file
Template template= new Template("sometemplate", new StringReader(templateText), cfg);
//your data model
Object root = new Object();
//process template
StringWriter out = new StringWriter();
template.process(new Object(), out);
String renderedText= out.toString();
答案 1 :(得分:0)
我不知道zip文件,但您可以使用'classForTemplateLoading'功能从jar文件加载它们:
public class MyLoader
{
private static Configuration cfg = new Configuration();
static
{
cfg.setClassForTemplateLoading( MyLoader.class, "/" );
}
public Template getTemplate( String path ) throws Throwable
{
return cfg.getTemplate(path);
}
}
例如,如果模板“MyTemplate.ftl”位于“com.mycode.templates”包中,则路径为“/com/mycode/templates/MyTemplate.ftl”。
那么你就可以把你的'source'树装扮成类,把jar添加到你的类路径中,它应该只是工作。