一、简介
FreeMarker是一款模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页、电子邮件、配置文件、源代码等)的通用工具。 它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。
FreeMarker是免费的,基于Apache许可证2.0版本发布。其模板编写为FreeMarker Template Language(FTL),属于简单、专用的语言。需要准备数据在真实编程语言中来显示,比如数据库查询和业务运算, 之后模板显示已经准备好的数据。在模板中,主要用于如何展现数据, 而在模板之外注意于要展示什么数据。
二、环境搭建
1、通过maven搭建
pom.xml
<?xml version="1.0"?> <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <modelVersion>4.0.0</modelVersion> <groupId>com.xu.freemarker</groupId> <artifactId>freemarkerTest</artifactId> <version>0.0.1-SNAPSHOT</version> <name>freemarkerTest</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <!-- freemarker核心 jar --> <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.19</version> </dependency> <!-- junit测试 jar --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.10</version> <scope>test</scope> </dependency> </dependencies> </project>
2、freemarker工具类FreemarkerUtil.java
package com.xu.freemarker; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; import java.util.Map; import freemarker.template.Configuration; import freemarker.template.Template; import freemarker.template.TemplateException; public class FreemarkerUtil { //getTemplate("01.ftl") public Template getTemplate(String name){ //通过Freemarker的Configuration读取相应的ftl Configuration cfg = new Configuration(); //设置去哪里读取相应的ftl模版文件 cfg.setClassForTemplateLoading(this.getClass(), "/ftl"); Template temp = null; try { //在模版文件目录中找到名称为name的文件 temp = cfg.getTemplate(name); } catch (IOException e) { e.printStackTrace(); } return temp; } //通过Template可以将模版输出到相应的流中 public void print(String name, Map<String,Object> root){ Template temp = this.getTemplate(name); try { temp.process(root, new PrintWriter(System.out)); } catch (TemplateException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } //通过Template可以将模版输出到相应的文件中 public void fprint(String name, Map<String,Object> root, String outFile){ Template temp = this.getTemplate(name); FileWriter fw = null; try { fw = new FileWriter(new File(outFile)); temp.process(root, fw); } catch (IOException e) { e.printStackTrace(); } catch (TemplateException e) { e.printStackTrace(); } finally{ if(fw != null){ try { fw.close(); } catch (IOException e) { e.printStackTrace(); } } } } }
3、 测试类TestFreemarkter.java
package com.xu.freemarker; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import org.junit.Before; import org.junit.Test; import com.xu.freemarker.model.User; public class TestFreemarkter { FreemarkerUtil fu; @Before public void before(){ fu = new FreemarkerUtil(); } @Test public void test01(){ Map<String,Object> root = new HashMap<String,Object>(); root.put("username", "张三"); fu.print("01.ftl", root); } }
4、freemark文件01.ftl
您好,${username}
5、运行测试结果
您好,张三
freemarker环境搭建完毕
源码在附件中
相关推荐
NULL 博文链接:https://01jiangwei01.iteye.com/blog/725280
NULL 博文链接:https://fengg694.iteye.com/blog/1457522
基于MAVEN的spring boot 环境搭建,已配置好freemarker 需要jdk 1.8
基于gulp的前端构建工具, 集成java freemarker开发环境
一个完整的Spring+Hibernate+FreeMarker环境的搭建过程。 包括了国际化配置、缓存配置、事物配置等功能
Freemarker页面语法 A 概念 最常用的 3 个概念 sequence 序列,对应java 里的list 、数组等非键值对的集合 hash 键值对的集合 namespace 对一个ftl 文件的引用, 利用这个名字可以访问到该ftl 文件的资源 ...
freemarker转doc及docx说明: 1.本地配置有maven环境,修改FreeMarkerUtil的main中的本地文件路径参数,然后执行main方法即可导出docx文件
这些模块可以用于搭建自己的后台管理系统,样式也很好看, 下载之后,先导入mysql的数据库,然后记得修改application.properties中的数据库连接地址,另外如果要启动这个项目还需要启动Redis,启动了redis之后,就...
spring mvc +freemarker不错的mvc搭配 ...一、原来的程序有问题,导致maven无法编译运行。修改后解决了maven无法编译打包运行的问题,运行通过。...4.运行环境:默认jdk1.6.0_23,Maven以及相关环境变量已经配置好。
基于SpringBoot+freemarker实现的人事管理系统分为七大模块:绩效考核,招聘管理,档案管理,工资管理,考勤管理,培训管理,系统管理。本系统最大特色是有强大和灵活的权限控制功能,所有菜单,按钮功能均可由管理...
这是一个基于eclipse+springmvc+freemarker+注解的入门例子,是一个war包,import到eclipse就应该可以直接运行,但是确保maven环境到存在;我做为一个入门者,是参照了...
JAVA模版引擎Freemarker常用标签(一) 1. if指令 这是一个典型的分支控制指令,该指令的作用完全类似于Java语言中的if,if指令的语法格式如下: <#if condition>... <#elseif condition>... <#elseif condition>......
JFinal + shiro+freemarker +bootstrap3 后台基础管理 开发说明 1.导入 doc/jfinal-base-admin.sql 2.修改数据库配置文件 src/main/resources/development下example.db.properties文件名为 db.properties 并填写对应...
环境配置: Jdk1.8 + Tomcat8.0 + mysql + Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持) 项目技术: Springboot + SpringMVC + MyBatis + FreeMarker + JavaScript + JQuery + Ajax + maven等等。
全局配置,及单例设计* 基于 FreeMarker 设计一个网站后台MVC框架,借此阐述MVC框架的一般性原理。 〖课程体系〗JavaWeb相关课程:- HTML网页基础教程 - VUE框架基础 - 网站开发入门教程 - 网站开发进阶教程...
Substitute 是一个处理 Freemarker 模板的工具,它以模板和环境配置作为输入并返回处理后的模板。 先决条件 Java JDK Maven Unix 风格的操作系统。 在 Linux(Fedora、RHEL)上测试 快速开始 克隆 Git 存储库: ...
基于注解的SPRINGMVC+FREEMARKER环境搭建