Freemarkar工具类
2016-05-25 23:35
197 查看
具体入门案例可参考,我也是参考这篇文章。
Freemarker入门案例
以下代码只是对ftl模板存放位置进行改造,把模板放在WebRoot根目录下,这样的好处是每次换ftl模板不用重启tomcat,为开发省下不少时间。
另:调用getTemplate记得设置编码,之前就因没设编码而导致生成的模板乱码。
Freemarker入门案例
以下代码只是对ftl模板存放位置进行改造,把模板放在WebRoot根目录下,这样的好处是每次换ftl模板不用重启tomcat,为开发省下不少时间。
另:调用getTemplate记得设置编码,之前就因没设编码而导致生成的模板乱码。
package cn.com.ecinc.syslist.busimodel.util; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.util.HashMap; import java.util.Map; import org.apache.struts2.ServletActionContext; import freemarker.template.Configuration; import freemarker.template.Template; import freemarker.template.TemplateException; public class FreemarkerUtil { public Template getTemplate(String name) { try { // 通过Freemaker的Configuration读取相应的ftl Configuration cfg = new Configuration(); // 设定去哪里读取相应的ftl模板文件 String path = ServletActionContext.getServletContext().getRealPath("/base/jsp/customlist/listtemplate"); cfg.setDirectoryForTemplateLoading(new File(path)); // template // directory // 在模板文件目录中找到名称为name的文件 Template temp = cfg.getTemplate(name, "UTF-8"); return temp; } catch (IOException e) { e.printStackTrace(); } return null; } /** * 控制台输出 * * @param name * @param root */ public void print(String name, Map<String, Object> root) { try { // 通过Template可以将模板文件输出到相应的流 Template temp = this.getTemplate(name); temp.process(root, new PrintWriter(System.out)); } catch (TemplateException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } /** * 输出HTML文件 * * @param name * @param root * @param outFile */ public void fprint(String name, Map<String, Object> root, String outFile) { // FileWriter out = null; OutputStreamWriter out; try { // 通过一个文件输出流,就可以写到相应的文件中,此处用的是绝对路径 out = new OutputStreamWriter(new FileOutputStream(outFile), "UTF-8"); // out = new FileWriter(outFile); Template temp = this.getTemplate(name); temp.process(root, out); out.flush(); out.close(); } catch (Exception e) { e.printStackTrace(); } finally { } } public static void main(String[] args) { FreemarkerUtil freemarkerUtil = new FreemarkerUtil(); Map<String, Object> map = new HashMap<String, Object>(); map.put("username", "alex"); freemarkerUtil.print("test.ftl", map); } }
相关文章推荐
- USACO 4.3 高精度
- vim的简单配置
- linux下strtok和strtok_r的使用
- phaser.js显示对象篇
- 程序,进程,线程(需补充)
- c++第六次实验
- 【Mysql sql inject】【入门篇】SQLi-Labs使用 part 2【12-14】
- RS232接口的可靠传输方法
- xcode真机调试和同开发者账号同事真机调试
- Kruskal 算法 (MST)
- 系统断点在哪里&&如何断在TLS回调前
- iOS应用支持IPV6,就那点事儿
- 自定义Exception
- __FILE__ $_SERVER['PHP_SELF'] $_SERVER['SCRIPT_NAME'] $_SERVER['SCRIPT_FILENAME'] 的区别
- PHP文件基础知识
- win10 启动文件夹
- Integer int 比较
- 长期接受碎片化信息,会有什么后果?
- java多线程之join()方法
- 动态规划