Date
import java.io.*;
import java.util.*;
import freemarker.template.*;
public class HelloFreemarker {
public static void main(String[] args)
throws IOException, TemplateException {
Configuration cfg = new Configuration();
cfg.setObjectWrapper(new DefaultObjectWrapper());
cfg.setDirectoryForTemplateLoading(new File("."));
Map<String, Object> model = new HashMap<String, Object>();
model.put("name", "World");
Template template = cfg.getTemplate("hello.ftl");
template.process(model,
new OutputStreamWriter(System.out));
}
}
我使用freemarker模板编写了一个java程序。但是当我尝试编译/构建程序时它显示配置错误。消息显示配置已弃用。我正在使用jdk 8和jre 8并使用eclipse neon作为我的ide。请帮我执行程序
答案 0 :(得分:1)
发生这种情况是因为从版本 2.3.21 开始弃用了 Configuration()构造函数。
使用新的参数化构造函数 Configuration(Version)实例化Configuration对象。
根据freemarker API文档,版本是一个类,用于指定您要应用哪个Freemarker版本最多不兼容100%向后兼容的修补程序。
例如:假设我正在使用 freemarker-2.3.28.jar ,并希望启用其所有向后兼容的错误修正/改进,然后按如下所示创建Configuration对象
配置cofig =新配置(Configuration.VERSION_2_3_28);
可以here检查所有的freemarker API版本。希望这会有所帮助:)
答案 1 :(得分:0)
这可能是因为您在创建配置管理器时未指定值。我在Apache's website上找到了一个例子:
配置cfg =新配置( Configuration.VERSION_2_3_25 );
显然,当留空时会选择默认值。该默认值然后调用一个depracated函数。
您应该弄清楚要使用的配置版本;可能是最新稳定的。