FreeMarker生成静态页

来源:互联网 发布:快约软件 编辑:程序博客网 时间:2024/05/08 16:12

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

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

[java] view plain copy
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
  2. <html>  
  3.   <head>  
  4.   <meta http-equiv=Content-Type content="text/html; charset=utf-8">  
  5.     <title>user.ftl</title>  
  6.   </head>  
  7.   <body>  
  8.     ${user.userName}  
  9.     ${user.userPassword}  
  10.   </body>  
  11. </html>  


 

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

[java] view plain copy
  1. //省略包的导入  
  2. Public class FreeMarkerUtil{  
  3. //templatePath模板文件存放路径  
  4. //templateName 模板文件名称  
  5. //filename 生成的文件名称  
  6. public static void analysisTemplate(String templatePath,String templateName,String fileName,Map<?,?>root){  
  7. try {  
  8.    Configuration config=new Configuration();  
  9.   //设置要解析的模板所在的目录,并加载模板文件  
  10.   config.setDirectoryForTemplateLoading(new File(templatePath));  
  11.    //设置包装器,并将对象包装为数据模型  
  12.    config.setObjectWrapper(new DefaultObjectWrapper());  
  13.      
  14.  //获取模板,并设置编码方式,这个编码必须要与页面中的编码格式一致  
  15.  //否则会出现乱码  
  16. Template template=config.getTemplate(templateName,“UTF-8”);  
  17.    //合并数据模型与模板  
  18.    FileOutputStream fos = new FileOutputStream(fileName);  
  19.    Writer out = new OutputStreamWriter(fos,“UTF-8”);  
  20.       template.process(root, out);  
  21.       out.flush();  
  22.       out.close();  
  23.   } catch (IOException e) {  
  24.    e.printStackTrace();  
  25.   }catch (TemplateException e) {  
  26.    e.printStackTrace();  
  27.   }  
  28.  }  
  29. }  


 

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

[java] view plain copy
  1. //..省略包的导入   
  2.       public class User{  
  3.  private String userName;  
  4. private String userPassword;  
  5. …省略getter()与setter方法  
  6.   
  7. }  


 

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

[java] view plain copy
  1. //..省略包的导入  
  2. public class ClientTest{  
  3.  public static void main(String[] args){  
  4.  User user=new User();  
  5.   user.setUserName("张三");  
  6.   user.setUserPassword("123");  
  7.     
  8.   Map<String,Object> root=new HashMap<String, Object>();  
  9.   root.put("user", user);  
  10. String templatesPath="D:/DevPlateForm/Eclipse/workspaces/freeMakerTest/src/templates";  
  11.   String templateFile="/user.ftl";  
  12.   String htmlFile=templatesPath+"/user.html";  
  13.     FreeMarkertUtil.analysisTemplate(templatesPath,templateFile,htmlFile,root);  
  14. }  
  15. }  


 转自:http://blog.csdn.net/flash9008/article/details/7207824

0 0
原创粉丝点击