网页静态化freemarker

来源:互联网 发布:淘宝网衣服男 编辑:程序博客网 时间:2024/05/22 16:20

1.1. 什么是freemarker

FreeMarker是一个用Java语言编写的模板引擎,它基于模板来生成文本输出。FreeMarkerWeb容器无关,即在Web运行时,它并不知道ServletHTTP。它不仅可以用作表现层的实现技术,而且还可以用于生成XMLJSPJava等。

 

目前企业中:主要用Freemarker做静态页面或是页面展示

1.1. Freemarker的使用方法

freemarkerjar包添加到工程中。

Maven工程添加依赖

<dependency>

  <groupId>org.freemarker</groupId>

  <artifactId>freemarker</artifactId>

  <version>2.3.23</version>

</dependency>

原理:


使用步骤:

第一步:创建一个Configuration对象,直接new一个对象。构造方法的参数就是freemarker对于的版本号。

第二步:设置模板文件所在的路径。

第三步:设置模板文件使用的字符集。一般就是utf-8.

第四步:加载一个模板,创建一个模板对象。

第五步:创建一个模板使用的数据集,可以是pojo也可以是map。一般是Map

第六步:创建一个Writer对象,一般创建一FileWriter对象,指定生成的文件名。

第七步:调用模板对象的process方法输出文件。

第八步:关闭流。

模板:

${hello}

 

@Test

public void genFile()throws Exception {

// 第一步:创建一个Configuration对象,直接new一个对象。构造方法的参数就是freemarker对于的版本号。

Configuration configuration = new Configuration(Configuration.getVersion());

// 第二步:设置模板文件所在的路径。

configuration.setDirectoryForTemplateLoading(new File("D:/workspaces-itcast/term197/taotao-item-web/src/main/webapp/WEB-INF/ftl"));

// 第三步:设置模板文件使用的字符集。一般就是utf-8.

configuration.setDefaultEncoding("utf-8");

// 第四步:加载一个模板,创建一个模板对象。

Template template = configuration.getTemplate("hello.ftl");

// 第五步:创建一个模板使用的数据集,可以是pojo也可以是map。一般是Map。

Map dataModel = new HashMap<>();

//向数据集中添加数据

dataModel.put("hello","this is my first freemarker test.");

// 第六步:创建一个Writer对象,一般创建一FileWriter对象,指定生成的文件名。

Writer out = new FileWriter(new File("D:/temp/term197/out/hello.html"));

// 第七步:调用模板对象的process方法输出文件。

template.process(dataModel,out);

// 第八步:关闭流。

out.close();

}


1.1. 模板的语法

1.1.1. 访问map中的key

1.1.1. 访问pojo中的属性

Student对象。学号、姓名、年龄


1.1.1. 取集合中的数据

<#list studentList asstudent>

${student.id}/${studnet.name}

</#list>

循环使用格式:

<#list 要循环的数据 as循环后的数据>

</#list>



1.1.1. 取循环中的下标

<#list studentList as student>

${student_index}

</#list>


1.1.1. 判断

<#if student_index % 2 == 0>

<#else>

</#if>


1.1.1. 日期类型格式化

直接取值:${date}(date是属性名)如果传来的是一个Date型数据会报错

${date?date} 2016-9-13

${date?time} 17:53:55

${date?datetime} 2016-9-13 17:53:55



1.1.1. Null值的处理

如果直接取一个不存在的值(值为null)时会报异常

${aaa}

处理: ${aaa!”默认值}或者${aaa! }代表空字符串




原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 360借条账户异常怎么办 360账户状态异常怎么办 手机qq联网超时怎么办 腾讯视频被盗号怎么办 pos机连接超时怎么办 qq出现系统错误怎么办 校园宽带登录超时怎么办 微信登录频繁怎么办 小黄车登录不上怎么办 快刷服务器超时怎么办 连接isp服务器超时怎么办 Qq后端服务超时怎么办 cf连接服务器失败怎么办 手机qq登录超时怎么办 qq后端服务器超时怎么办 游戏中登录超时怎么办 802.1x认证超时怎么办 连接认证服务器超时怎么办 登录企业qq超时怎么办 苹果手机下载不了怎么办 信用卡有溢存款怎么办 信用卡余额多了怎么办 信用卡还了退款怎么办 京东京豆是负的怎么办 京豆为负数怎么办 手机应用程序未响应怎么办 手机号换了淘宝怎么办 移动号码被锁定怎么办 联通号码被锁定怎么办 扣扣密保手机不用了怎么办 手机号被回收了怎么办 qq小游戏没有声音怎么办 职务侵占不赔偿怎么办 立案后找不到人怎么办 身体弱去墓地怎么办 电话号码被删了怎么办 id变更了手机号怎么办 换手机苹果账户怎么办 更换手机号微信怎么办 被诈骗一千元怎么办 逛淘宝上瘾了怎么办