`
goodscript
  • 浏览: 71950 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

在java代码中引用freemark

阅读更多
以下是在java代码中引用freemark的代码片段
依赖的包spring3.0和freemark2.3.18(附件提供下载)
QuestionForm是以个普通的对象 替换成你自己对象即可


import java.io.*;
import java.util.*;

import org.springframework.core.io.Resource;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.core.io.support.ResourcePatternResolver;

import com.coderside.app.exam.web.*;

import freemarker.cache.FileTemplateLoader;
import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;

public class FreeMarkTools {

	/**存放模板文件夹的路径***/
	private static String baseDir = "classpath:conf/template";
	private static Configuration cfg = new Configuration();
	
	/**编码格式***/
	private static String charset = "UTF-8";

	public static void main(String[] args) {
		FreeMarkTools.TemplateFactory("test.ftl");

	}

	/**
	 * 根据路径获取模板
	 * @param path
	 * @return
	 */
	public static Template TemplateFactory(String path) {
		try {
			ResourcePatternResolver r = new PathMatchingResourcePatternResolver();
			Resource resource = r.getResource(baseDir);
			File file = new File(resource.getURI());
			FileTemplateLoader templateLoader = new FileTemplateLoader(file);
			cfg.setTemplateLoader(templateLoader);
			Template t = cfg.getTemplate(path, charset);
			return t;
		} catch (IOException e) {
			e.printStackTrace();
		}
		return null;
	}

	/**
	 * 根据指定的模板引用freenark生成字符串格式
	 * @param path
	 * @param root
	 * @return
	 * @throws TemplateException
	 * @throws IOException
	 */
	@SuppressWarnings("unchecked")
	public static String createHtml(String path, List<QuestionForm> root) throws TemplateException, IOException {
		Template t = TemplateFactory(path);
		ByteArrayOutputStream bos = null;
		StringBuffer sbuff = new StringBuffer();
		Map map = null;
		for (QuestionForm qf : root) {
			bos = new ByteArrayOutputStream();
			map = new HashMap();
			map.put("qf", qf);
			map.put("id", qf.getQuestionid());
			Writer out = new OutputStreamWriter(bos, charset);
			if (null != qf.getChooserItems()) {
				t.process(map, out);
				sbuff.append(new String(bos.toByteArray(), charset));
			}
		}

		return sbuff.toString();
	}



}


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics