一、通过文件来创建模版对象,并执行插值操作

文件结构为:

Test.Java中的代码为:

  1. package com.abc;
  2. import freemarker.template.Configuration;
  3. import freemarker.template.Template;
  4. import java.io.File;
  5. import java.io.OutputStreamWriter;
  6. import java.util.HashMap;
  7. import java.util.Map;
  8. public class Test {
  9. public static void main(String[] args) throws Exception {
  10. //创建一个Configuration实例
  11. final Configuration cfg;
  12. cfg = new Configuration();
  13. //设置FreeMarker的模版文件夹位置
  14. cfg.setDirectoryForTemplateLoading(new File("D:\\workspace\\freemarkertest\\src\\com\\abc"));
  15. Map<String, String> map = new HashMap<String, String>();
  16. map.put("user", "Zheng");
  17. map.put("website", "金额宝");
  18. map.put("url", "http://www.jebao.net/");
  19. //创建模版对象
  20. Template t = cfg.getTemplate("test.ftl");
  21. //在模版上执行插值操作,并输出到制定的输出流中
  22. t.process(map, new OutputStreamWriter(System.out));
  23. }
  24. }

Test.ftl中的代码为:

  1. <html>
  2. <head>
  3. <title>Welcome!</title>
  4. </head>
  5. <body>
  6. <h1>Welcome ${user}!</h1>
  7. <p>Our latest product:
  8. <a href="${url}">${website}</a>!
  9. </body>
  10. </html>
  11. 尊敬的用户你好!
  12. 用户名:${user}
  13. URL:    ${url}
  14. 网站:  ${website}

运行结果为:

</head>

<body>

<h1>Welcome Zheng!</h1>

<p>Our latest product:

<ahref="http://www.jebao.NET/">金额宝</a>!

</body>

</html>

尊敬的用户你好!

用户名:Zheng

URL:   http://www.jebao.Net/

FreeMarker最简单的例子(1)的更多相关文章

  1. Freemarker 最简单的例子程序

    首先导入包,freemarker.jar   下载地址:  freemarker-2.3.18.tar.gz http://cdnetworks-kr-1.dl.sourceforge.net/pro ...

  2. FreeMarker最简单的例子(2)

    二.通过String来创建模版对象,并执行插值处理 代码: package com.abc; import freemarker.template.Template; import java.io.O ...

  3. Struts2的配置和一个简单的例子

    Struts2的配置和一个简单的例子 笔记仓库:https://github.com/nnngu/LearningNotes 简介 这篇文章主要讲如何在 IntelliJ IDEA 中使用 Strut ...

  4. 简单的例子了解自定义ViewGroup(一)

    在Android中,控件可以分为ViewGroup控件与View控件.自定义View控件,我之前的文章已经说过.这次我们主要说一下自定义ViewGroup控件.ViewGroup是作为父控件可以包含多 ...

  5. CSharpGL(1)从最简单的例子开始使用CSharpGL

    CSharpGL(1)从最简单的例子开始使用CSharpGL 2016-08-13 由于CSharpGL一直在更新,现在这个教程已经不适用最新的代码了.CSharpGL源码中包含10多个独立的Demo ...

  6. 用一个简单的例子来理解python高阶函数

    ============================ 用一个简单的例子来理解python高阶函数 ============================ 最近在用mailx发送邮件, 写法大致如 ...

  7. Spring-Context之一:一个简单的例子

    很久之前就想系统的学习和掌握Spring框架,但是拖了很久都没有行动.现在趁着在外出差杂事不多,就花时间来由浅入深的研究下Spring框架.Spring框架这几年来已经发展成为一个巨无霸产品.从最初的 ...

  8. C#调用存储过程简单完整例子

    CREATE PROC P_TEST@Name VARCHAR(20),@Rowcount INT OUTPUTASBEGIN SELECT * FROM T_Customer WHERE NAME= ...

  9. 关于apriori算法的一个简单的例子

    apriori算法是关联规则挖掘中很基础也很经典的一个算法,我认为很多教程出现大堆的公式不是很适合一个初学者理解.因此,本文列举一个简单的例子来演示下apriori算法的整个步骤. 下面这个表格是代表 ...

随机推荐

  1. 2017-2018 ACM-ICPC Northern Eurasia (Northeastern European Regional) Contest (NEERC 17) 日常训练

    A - Archery Tournament 题目大意:按时间顺序出现靶子和射击一个位置,靶子的圆心为(x, y)半径为r,即圆与x轴相切,靶子不会重叠,靶子被击中后消失, 每次射击找出哪个靶子被射中 ...

  2. nginx中使用perl模块

    转载自:http://www.netingcn.com/nginx-perl.html 如果对于一个绝大部分内容是静态的网站,只有极少数的地方需要动态显示,碰巧你又了解一点perl知识,那么nginx ...

  3. HDU 5820 Lights (2016多校7L,主席树)

    题意  给定n个平面上的点,坐标范围为[1, 50000].如果对于任意两个点,都可以通过直走(中途经过其他点)走到. 那么输出YES,否则输出NO. 首先排序,去重. 我们要找的点对是只能斜对角走到 ...

  4. LibreOJ #139 树链剖分 [树链剖分,线段树]

    题目传送门 树链剖分 题目描述 这是一道模板题. 给定一棵 n 个节点的树,初始时该树的根为 1 号节点,每个节点有一个给定的权值.下面依次进行 m 个操作,操作分为如下五种类型: 换根:将一个指定的 ...

  5. SVN版本控制软件

    一.版本控制软件 1.为什么需要版本控制软件 问题:① 团队开发 ② 异地协作 ③ 版本回退 2.解决之道 SCM(Software Configuration Management):软件配置管理 ...

  6. 读书笔记(javascript语言精粹)

    1. 注释: 在js中,/**/为块注释,//为行注释:但块注释在有些情况下是不安全的.如: /* var rm_a = /a*/.match(s); */ 上面的注释导致了一个语法错误.所以,建议避 ...

  7. Spring和依赖注入的价值

    javaeye上看到有帖子,置疑spring和依赖注入的价值,回复内容整理如下: 依赖注入对设计有利,而spring则促进了依赖注入的使用. 如果业务处理类,它所使用的倚赖,都是依靠在这个类内部实现或 ...

  8. [POJ1980]Unit Fraction Partition(搜索)

    Unit Fraction Partition Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 4571   Accepted ...

  9. 【动态规划】【线段树】 Codeforces Round #426 (Div. 1) B. The Bakery

    给你一个序列,让你划分成K段,每段的价值是其内部权值的种类数,让你最大化所有段的价值之和. 裸dp f(i,j)=max{f(k,j-1)+w(k+1,i)}(0<=k<i) 先枚举j,然 ...

  10. 小Z的城市之旅

    题目大意: 从(0,0)走到(x,y),每次可以向上下左右走一格,问走r步刚好到(x,y)的方案数. 思路: 找规律发现答案就是C((r+x-y)/2,r)*C((r-x-y)/2,r). #incl ...