FreeMarker生成静态页面(源文件)

一、 FreeMarker生成静态页原理

众所周知,FreeMarker适合于作为Web应用的表现层,那么我们就把把页面中所需要的样式放入FreeMarker文件中,然后将页面所需要的数据动态绑定,并放入Map中,通过调用FreeMarker模板文件解析类process()方法完成静态页面的生成。了解了上面的原理,接下来我就一步步带您实现FreeMarker生成静态页面。

二、创建FreeMarker模板文件user.ftl。

User.ftl

<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">

<html>

<head>

<metahttp-equiv=Content-Typecontent="text/html;charset=utf-8">

<title>user.ftl</title>

</head>

<body>

${user.userName}

${user.userPassword}

</body>

</html>

三、创建FreeMarker模板文件解析器类FreeMarkertUtil

FreeMarkertUtil.java

//省略包的导入

PublicclassFreeMarkerUtil{

//templatePath模板文件存放路径

//templateName模板文件名称

//filename生成的文件名称

publicstaticvoidanalysisTemplate(StringtemplatePath,StringtemplateName,StringfileName,Map<?,?>root){

try{

Configurationconfig=newConfiguration();

//设置要解析的模板所在的目录,并加载模板文件

config.setDirectoryForTemplateLoading(newFile(templatePath));

//设置包装器,并将对象包装为数据模型

config.setObjectWrapper(newDefaultObjectWrapper());

//获取模板,并设置编码方式,这个编码必须要与页面中的编码格式一致

//否则会出现乱码

Templatetemplate=config.getTemplate(templateName,“UTF-8”);

//合并数据模型与模板

FileOutputStreamfos=newFileOutputStream(fileName);

Writerout=newOutputStreamWriter(fos,“UTF-8”);

template.process(root,out);

out.flush();

out.close();

}catch(IOExceptione){

e.printStackTrace();

}catch(TemplateExceptione){

e.printStackTrace();

}

}

}

四、创建FreeMarker模板文件动态绑定的数据对象类User.java

User.java

//..省略包的导入

publicclassUser{

privateStringuserName;

privateStringuserPassword;

…省略getter()与setter方法

}

五、创建FreeMarker生成静态页面测试类ClientTest.java

//..省略包的导入

publicclassClientTest{

publicstaticvoidmain(String[]args){

Useruser=newUser();

user.setUserName("张三");

user.setUserPassword("123");

Map<String,Object>root=newHashMap<String,Object>();

root.put("user",user);

StringtemplatesPath="D:/DevPlateForm/Eclipse/workspaces/freeMakerTest/src/templates";

StringtemplateFile="/user.ftl";

StringhtmlFile=templatesPath+"/user.html";

FreeMarkertUtil.analysisTemplate(templatesPath,templateFile,htmlFile,root);

}

}

注意:templatesPath为我机器上的FreeMarker模板文件存放路径。如果您要是测试的话,可以将此改为您创建的模板文件存放路径。

好了,所有的工作都已经完成了,我们可以运行ClientTest类来测试了。

本例在您的工程中运行时,必须导入freemarker.jar文件,否则不能编译。

 在我的工程中,您可以找到对应的文件。

通过上面一个简单的示例,相信您一定对FreeMarker如何生成静态页面有了了解。希望本文能对您的开发有所帮助。如果您在阅读本文的过程中发现问题,请通过留言的形式给与批评指正,谢谢!

附件下载

 

相关推荐