java – 如何在FreeMarker中传递String作为输入?

这个问题在这里已经有一个答案:> Load FreeMarker templates from database4个
所有的模板都存储在数据库中.我必须从数据库获取模板的内容,并用freemarker标记.结束输出将在文本框中呈现.

但是,我没有找到任何可以发送字符串而不是文件名的方法.

请建议.

解决方法

您可以使用 StringReader
// Get your template as a String from the DB
  String template = getTemplateFromDatabase();
  Map<String,Object> model = getModel();

  Configuration cfg = new Configuration();
  cfg.setobjectWrapper(new DefaultObjectWrapper());

  Template t = new Template("templateName",new StringReader(template),cfg);

  Writer out = new StringWriter();
  t.process(model,out);

  String transformedTemplate = out.toString();

相关文章

HashMap是Java中最常用的集合类框架,也是Java语言中非常典型...
在EffectiveJava中的第 36条中建议 用 EnumSet 替代位字段,...
介绍 注解是JDK1.5版本开始引入的一个特性,用于对代码进行说...
介绍 LinkedList同时实现了List接口和Deque接口,也就是说它...
介绍 TreeSet和TreeMap在Java里有着相同的实现,前者仅仅是对...
HashMap为什么线程不安全 put的不安全 由于多线程对HashMap进...