【转载】FreeMarker解析字符串模板

来源:互联网 发布:时下最流行的网络语言 编辑:程序博客网 时间:2024/05/22 12:08

 

 

重写Freemarker的模板加载器即可:

 

package cn.com.aweb.vote.test.other;import java.io.IOException;import java.io.Reader;import java.io.StringReader;import java.util.HashMap;import java.util.Map;import freemarker.cache.TemplateLoader;public class StringTemplateLoader implements TemplateLoader {private static final String DEFAULT_TEMPLATE_KEY = "_default_template_key";private Map templates = new HashMap();public StringTemplateLoader(String defaultTemplate) {if (defaultTemplate != null && !defaultTemplate.equals("")) {templates.put(DEFAULT_TEMPLATE_KEY, defaultTemplate);}}public void AddTemplate(String name, String template) {if (name == null || template == null || name.equals("")|| template.equals("")) {return;}if (!templates.containsKey(name)) {templates.put(name, template);}}public void closeTemplateSource(Object templateSource)throws IOException {}public Object findTemplateSource(String name) throws IOException {if (name == null || name.equals("")) {name = DEFAULT_TEMPLATE_KEY;}return templates.get(name);}public long getLastModified(Object templateSource) {return 0;}public Reader getReader(Object templateSource, String encoding)throws IOException {return new StringReader((String) templateSource);}}

 

 

 

测试类:package cn.com.aweb.vote.test.other;import java.io.StringWriter;import java.util.HashMap;import java.util.Map;import freemarker.template.Configuration;import freemarker.template.Template;public class Test{public static void main(String[] args) throws Exception {Configuration cfg = new Configuration();            cfg.setTemplateLoader(new StringTemplateLoader("hello:${user}"));            cfg.setDefaultEncoding("UTF-8");               Template template = cfg.getTemplate("");                        Map root = new HashMap();            root.put("user", "lunzi");                        StringWriter writer = new StringWriter();            template.process(root, writer);            System.out.println(writer.toString());          }}
附件是 freemarker 学习 pdf
  • FreeMarker_Manual_zh_CN_2.3.16__v2.pdf (2.8 MB)
  • 下载次数: 10
原创粉丝点击