FreeMarker网页静态化学习day01
1. 什么是FreeMarker?
FreeMarker 是一款 模板引擎: 即一种基于模板和要改变的数据,
并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。
它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。
2. FreeMarker的模式?
这种方式通常被称为 MVC (模型 视图 控制器) 模式,对于动态网页来说,是一种特别流行的模式。 它帮助从开发人员(Java 程序员)中分离出网页设计师(HTML设计师)。设计师无需面对模板中的复杂逻辑, 在没有程序员来修改或重新编译代码时,也可以修改页面的样式。
3. FreeMarker的入门案例?
- 1.建立一个Maven工程
- 2.在pom文件中加入 FreeMarker 的 依赖(Maven厂库)
- 3.在resource目录下编写 Template 模板文件
创建名为FreeMarker.ftl的模板文件
<html>
<head>
<meta charset="UTF-8">
<title>FreeMarkerDemo</title>
</head>
<body>
<#-- 我是一个FreeMarker注释 不会显示在客户端上 -->
<!-- 我是HTML注释 我会显示在客户端上 -->
${name} , 您好! 欢迎使用${productName}
</body>
</html>
-
- 4.在Java目录下编写 如下代码 :
-
`
public static void main(String[] args) throws IOException, TemplateException {// 1. 创建一个配置对象 Configuration.getVersion(): 获取模板的版本 Configuration configuration = new Configuration(Configuration.getVersion()); // 2. 指定创建模板的目录 configuration.setDirectoryForTemplateLoading(new File("E:\\Users\\Administrator\\IdeaProjects\\FreeMark_Demo\\src\\main\\resources")); // 3. 设置字符集 configuration.setDefaultEncoding("UTF-8"); // 4.获取模板对象 Template template = configuration.getTemplate("FreeMarkerTest.ftl"); // 5. 创建数据模型(可以是对象 也可以是Map 使用更加灵活 ) Map map = new HashMap(); map.put("name","张三"); map.put("productName","FreeMarker网页静态化技术"); // 6. 创建文件输出流对象 Writer fileWriter = new FileWriter("D:\\FreeMarker\\page01.html"); // 7. 输出 template.process(map,fileWriter); // 8. 关闭 fileWriter.close();
}`
-
5.点击运行main方法 生成静态html文件
-
-
4. FreeMarker的指令的使用?
- 1.第一个指令 #assgin
<#-- 第一个指令 assgin 定义简单类型 -->
<#assign linkName = "王先生">
<#-- 定义对象类型 -->
<#assign info = {"mobile":"139-9999-9999","address":"湖北武汉"}>
联系人:${linkName} <br>
联系电话:${info.mobile}<br>
家庭住址:${info.address}<br>
- 2.第二个指令 #include
- 3.第三个指令 #if
- 4.第四个指令 #list 循环输出
-
- 1.编写测试数据代码
-
List<Student> list = new ArrayList<Student>(); Student student0 = new Student("张三","男",24, "湖北武汉江夏区"); list.add(student0); Student student1 = new Student("李四","女",20, "湖北武汉洪山区"); list.add(student1); Student student2 = new Student("王五","男",18, "湖北武汉武昌区"); list.add(student2); Student student3 = new Student("赵六","女",36, "湖北武汉东西湖区"); list.add(student3); map.put("list",list);
-
- 2.在模板文件中使用 #list 输出
- 2.在模板文件中使用 #list 输出
-
- 3.最后在页面的显示的效果
- 3.最后在页面的显示的效果
-