博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
FreeMarker-简单示例
阅读量:4557 次
发布时间:2019-06-08

本文共 2892 字,大约阅读时间需要 9 分钟。

以下是简单的FreeMarker示例,直接采用的方式。示例中是Application的项目,主要用于展示模板输出HTML文件的功能。

示例:

1、引入POM依赖

org.freemarker
freemarker
2.3.26-incubating

2、新建test.ftl文件

  Welcome!  

Welcome ${user}<#if user == "Big Joe">, our beloved leader
!

3、新建FreeMarkerUtil.java类用于生成通过ftl模板生成html文件

package com.jsoft.testfreemarker.test1;import java.io.File;import java.io.FileWriter;import java.io.IOException;import java.io.PrintWriter;import java.net.URISyntaxException;import java.util.Map;import freemarker.template.Configuration;import freemarker.template.Template;import freemarker.template.TemplateException;public class FreeMarkerUtil {    /**     * 获取模板     *      * @param name     * @return     */    public Template getTemplate(String name) {        try {            // 通过FreeMarker的Configuration读取相应的ftl            Configuration cfg = new Configuration();            // 设定去哪里读取相应的ftl模板文件            cfg.setClassForTemplateLoading(this.getClass(),"/");            // 在模板文件目录中找到名称为name的文件            Template temp = cfg.getTemplate(name);            return temp;        } catch (IOException e) {            e.printStackTrace();        }        return null;    }    /**     * 输出到控制台     *      * @param name     *            模板文件名     * @param root     */    public void print(String name, Map
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(); } } /** * 输出到文件 * * @param name * @param root * @param outFile */ public void fprint(String name, Map
root, String outFile) { FileWriter out = null; try { // 通过一个文件输出流,就可以写到相应的文件中 try { out = new FileWriter(new File(App.class.getResource("/").toURI().getPath() + outFile)); } catch (URISyntaxException e) { // TODO Auto-generated catch block e.printStackTrace(); } Template temp = this.getTemplate(name); temp.process(root, out); } catch (IOException e) { e.printStackTrace(); } catch (TemplateException e) { e.printStackTrace(); } finally { try { if (out != null) out.close(); } catch (IOException e) { e.printStackTrace(); } } }}

4、生成后的html内容:

  Welcome!  

Welcome Big Joe, our beloved leader!

 

测试工程:

 

总结:

1、其实这个例子是在Application基础上展示生成的html文件的,但实际项目不应该是这样去做,而是结合Servlet、Spring、Status这些框架进行开发。

转载于:https://www.cnblogs.com/EasonJim/p/7090785.html

你可能感兴趣的文章
js奇葩错误 字符串传递问题
查看>>
人之初,性本恶
查看>>
springboot 端口号
查看>>
使用AChartEngine画动态曲线图
查看>>
安卓项目五子棋代码详解(四)
查看>>
urllib 学习一
查看>>
bzoj4196 [Noi2015]软件包管理器——树链剖分
查看>>
kafka源码阅读环境搭建
查看>>
UI设计
查看>>
androidtab
查看>>
Windows Phone 自定义弹出框和 Toast 通知
查看>>
如何生成静态页面的五种方案
查看>>
php 事件驱动 消息机制 共享内存
查看>>
剑指offer 二叉树的bfs
查看>>
LeetCode Maximum Subarray
查看>>
让我们再聊聊浏览器资源加载优化
查看>>
underscore demo
查看>>
CSS hack
查看>>
C# Enum Name String Description之间的相互转换
查看>>
PHP wamp server问题
查看>>