freemarker 解析字符串模板

转载自 http://balaschen.iteye.com/blog/51591

package freemarker.loader;
import java.io.IOException;
import java.io.Reader;
import java.io.StringReader;
import java.util.HashMap;
import java.util.Map;
import freemarker.cache.TemplateLoader;
/**
* @author Keven Chen
* @version $Revision 1.0 $
*
*/
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);
}
}
 
/** 
* Created: 2007-2-1 
* Modified: 2007-2-1 
*  
* Author: Keven Chen 
*/ 
package freemarker;  
 
import java.io.File;  
import java.io.OutputStreamWriter;  
import java.io.StringWriter;  
import java.util.Date;  
import java.util.HashMap;  
import java.util.Map;  
 
import freemarker.loader.ClassPathTemplateLoader;  
import freemarker.loader.StringTemplateLoader;  
import freemarker.template.Configuration;  
import freemarker.template.Template;  
 
/** 
* @author Keven Chen 
* @version $Revision 1.0 $ 

*/ 
public class Test {  
 
    public static void main(String[] args) throws Exception {  
        Configuration cfg = new Configuration();  
        cfg.setTemplateLoader(new StringTemplateLoader("欢迎:${user}"));  
        cfg.setDefaultEncoding("UTF-8");  
 
        Template template = cfg.getTemplate("");  
          
        Map root = new HashMap();  
        root.put("user", "Keven Chen");  
          
        StringWriter writer = new StringWriter();  
        template.process(root, writer);  
        System.out.println(writer.toString());        
    }  
 
}  

猜你喜欢

转载自nonobaba.iteye.com/blog/2238752