Chinaunix首页 | 论坛 | 博客
  • 博客访问: 60397
  • 博文数量: 15
  • 博客积分: 517
  • 博客等级: 一等列兵
  • 技术积分: 230
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-14 09:54
文章分类

全部博文(15)

文章存档

2012年(15)

分类: Java

2012-04-18 12:26:49

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


 
 
    user.ftl
 
 
    ${user.userName}
    ${user.userPassword}
 

三、 创建FreeMarker模板文件解析器类FreeMarkertUtil
FreeMarkertUtil.java
//省略包的导入
Public class FreeMarkerUtil{
//templatePath模板文件存放路径
//templateName 模板文件名称
//filename 生成的文件名称
public static void analysisTemplate(String templatePath,String templateName,String fileName,Maproot){
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 root=new HashMap();
  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文件,否则不能编译。
 在我的工程中,您可以找到对应的文件。


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

阅读(2017) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

桔色花朵2012-04-18 21:21:35

用freemarker在处理跳转时,同一个跳转键,有的时候跳转的页面都不一样,为什么啊