freemarker

freemaker学习网址:http://freemarker.foofun.cn/dgui_quickstart_basics.html  里面有详细介绍

小补充:

1. 什么是FreeMarker?

FreeMarker 是一款 模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。 它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件

 2. 什么是模板引擎?

模板的诞生是为了将显示与数据分离,模板技术多种多样,但其本质是将模板文件和数据通过模板引擎生成最终的HTML代码。

模板技术并不是什么神秘技术,干的是拼接字符串的体力活。模板引擎就是利用正则表达式识别模板标识,并利用数据替换其中的标识符。

 

 

列子:

建立如下目录

 

 

1.两个实体类:

User.java

package khj.model;

/**
* Created by 10108 on 2017/10/27.
*/
import java.io.Serializable;

@SuppressWarnings("serial")
public class User implements Serializable {
private int id;
private String name;
private int age;
private Group group;

public Group getGroup() {
return group;
}

public void setGroup(Group group) {
this.group = group;
}

public User() {
}

public User(int id, String name, int age) {
this.id = id;
this.name = name;
this.age = age;
}

public int getId() {
return id;
}

public void setId(int id) {
this.id = id;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}

}

Group.java

 

package khj.model;

/**
* Created by 10108 on 2017/10/27.
*/
public class Group {
private String name;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

}


2.工具类 FreemarkerUtil.java

package khj.util;

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

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Map;

public class FreemarkerUtil {

public Template getTemplate(String name) {
try {
// 通过Freemaker的Configuration读取相应的ftl
Configuration cfg = new Configuration();
// 设定去哪里读取相应的ftl模板文件
cfg.setDirectoryForTemplateLoading(new File("G:\\freemarker\\src\\main\\webapp\\templates"));
// 在模板文件目录中找到名称为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<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;
try {
// 通过一个文件输出流,就可以写到相应的文件中,此处用的是绝对路径
out = new FileWriter(new File("F:/aa/" + outFile));
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();
}
}
}
}
3.建立测试类 FreemarkerTest.java

package khj.test;

import khj.model.Group;
import khj.model.User;
import khj.util.FreemarkerUtil;
import org.junit.Test;

import java.util.HashMap;
import java.util.Map;

/**
* Created by 10108 on 2017/10/27.
*/
public class FreemarkerTest {
@Test
public void test(){
FreemarkerUtil util=new FreemarkerUtil();
Map<String,Object> map=new HashMap<String, Object>();
User user=new User();
user.setAge(13);
user.setId(1);
user.setName("江");
Group group=new Group();
group.setName("第一组");
user.setGroup(group);
map.put("user",user);
util.fprint("01.ftl",map,"01.html");
}
}
参考:http://www.cnblogs.com/linjiqin/p/3387972.html





 

 

 

 

 

 

转载于:https://www.cnblogs.com/black-dog/p/7735684.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值