一、 FreeMarker生成静态页原理
众所周知,FreeMarker适合于作为Web应用的表现层,那么我们就把把页面中所需要的样式放入FreeMarker文件中,然后将页面所需要的数据动态绑定,并放入Map中,通过调用FreeMarker模板文件解析类process()方法完成静态页面的生成。了解了上面的原理,接下来我就一步步带您实现FreeMarker生成静态页面。
二、 创建FreeMarker模板文件user.ftl。
User.ftl
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv=Content-Type content="text/html; charset=utf-8">
<title>user.ftl</title>
</head>
<body>
${user.userName}
${user.userPassword}
</body>
</html>
三、 创建FreeMarker模板文件解析器类FreeMarkertUtil
FreeMarkertUtil.java
//省略包的导入
Public class FreeMarkerUtil{
//templatePath模板文件存放路径
//templateName 模板文件名称
//filename 生成的文件名称
public static void analysisTemplate(String templatePath,String templateName,String fileName,Map<?,?>root){
try {
Configuration config=new Configuration();
//设置要解析的模板所在的目录,并加载模板文件
config.setDirectoryForTemplateLoading(new File(templatePath));
//设置包装器,并将对象包装为数据模型
config.setObjectWrapper(new DefaultObjectWrapper());
//获取模板,并设置编码方式,这个编码必须要与页面中的编码格式一致
//否则会出现乱码
Template template=config.getTemplate(templateName,“UTF-8”);
//合并数据模型与模板
FileOutputStream fos = new FileOutputStream(fileName);
Writer out = new OutputStreamWriter(fos,“UTF-8”);
template.process(root, out);
out.flush();
out.close();
} catch (IOException e) {
e.printStackTrace();
}catch (TemplateException e) {
e.printStackTrace();
}
}
}
四、 创建FreeMarker模板文件动态绑定的数据对象类User.java
User.java
//..省略包的导入
public class User{
private String userName;
private String userPassword;
…省略getter()与setter方法
}
五、 创建FreeMarker生成静态页面测试类ClientTest.java
//..省略包的导入
public class ClientTest{
public static void main(String[] args){
User user=new User();
user.setUserName("张三");
user.setUserPassword("123");
Map<String,Object> root=new HashMap<String, Object>();
root.put("user", user);
String templatesPath="D:/DevPlateForm/Eclipse/workspaces/freeMakerTest/src/templates";
String templateFile="/user.ftl";
String htmlFile=templatesPath+"/user.html";
FreeMarkertUtil.analysisTemplate(templatesPath,templateFile,htmlFile,root);
}
}
注意: templatesPath为我机器上的FreeMarker模板文件存放路径。如果您要是测试的话,可以将此改为您创建的模板文件存放路径。
好了,所有的工作都已经完成了,我们可以运行ClientTest类来测试了。
本例在您的工程中运行时,必须导入freemarker.jar文件,否则不能编译。
在我的工程中,您可以找到对应的文件。
通过上面一个简单的示例,相信您一定对FreeMarker如何生成静态页面有了了解。希望本文能对您的开发有所帮助。如果您在阅读本文的过程中发现问题,请通过留言的形式给与批评指正,谢谢!
分享到:
相关推荐
NULL 博文链接:https://fackyou200.iteye.com/blog/972795
freemarker生成静态页面------内含使用说明 freemarker生成静态页面------内含使用说明 freemarker生成静态页面------内含使用说明
struts2+freemarker 生成静态页面,希望对大家有用!!!!
springboot整合freemarker生成静态html的demo 主要讲解了通过模板生成html和通过字符串生成html
那么我们就把把页面中所需要的样式放入FreeMarker文件中,然后将页面所需要的数据动态绑定,并放入Map中,通过调用FreeMarker模板文件解析类process()方法完成静态页面的生成。
freemarker生成静态HTML例子
freemarker创建静态网页的一个小例子
用freemarker做模板,结合struts2生成静态页面功能,不要分,嘻嘻
NULL 博文链接:https://depravedangel.iteye.com/blog/443575
这是一个eclipse下创建的一个project,里面有一个freemarker生成html及一些语法示例
给初学者一个简单的利用freemarker生成xml文件的例子
创建静态页面工具类,需要Freemarker的支持
主要就是用servlet做的,freemarker和httpclient的静态化都封装好了工具类了,简单,有文档,可以看懂
FreeMarker教你如何生成html静态页面源码
Freemarker模板生成pdf+javaFreemarker模板生成pdf+javaFreemarker模板生成pdf+javaFreemarker模板生成pdf+javaFreemarker模板生成pdf+java
介绍几种网站生成静态页面的方法。网站全部是静态页面的话,可以减少服务器的压力。
Struts2+Hibernate+Freemarker实现【增删改查】生成静态页面!这是一个相对网上较全的案例。源码内含数据库文件sql.sql及效果图!本人致力于完整的Demo。欢迎关注!回头补上分页。敬请期待!
freemarker 生成word,支持一个单元格生成多张图片
FreeMarker与struts2整合,一个小案例实现【增删改查】生成静态页面。内含数据库sql文件及效果图。数据库是mysql,c3p0+dbUtils实现数据操作。是一个完整的案例。
NULL 博文链接:https://goby2008.iteye.com/blog/627076