FreeMaker原理分析.docVIP

  • 7
  • 0
  • 约4.74千字
  • 约 5页
  • 2017-08-17 发布于重庆
  • 举报
FreeMaker原理分析.doc

Freemarker原理解析?? 2011-05-13 11:19:41|??分类: JavaEE |??标签:freemarker??模板??变量??数据模型??文件?? |字号?订阅 FreeMarker生成静态页原理 ????? FreeMarker适合于作为Web应用的表现层。freemarker大致原理是:将页面中所需要的样式放入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 ??? titleuser.ftl/title ? /head ? body ??? ${user.userName} ??? ${user.userPassword} ? /body /html 二、 创建FreeMarker模板文件动态绑定的数据对象类User.java(Sring中pojo) User.java //..省略包的导入 ????? public class User{ ?private String userName; private String userPassword; …省略getter()与setter方法 } 三、 创建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”); ????? cess(root, out); ????? out.flush(); ????? out.close(); ? } catch (IOException e) { ?? e.printStackTrace(); ? }catch (TemplateException e) { ?? e.printStackTrace(); ? } ?} } 四、 创建FreeMarker生成静态页面测试类ClientTest.java //..省略包的导入 public class ClientTest{ ?public static void main(String[] args){ ? User user=new User(); ? user.setUserName(张三); ? user.setUserPassword(123); ??MapString,Object root=new HashMapString, Object(); ? root.put(user, user); ? String templatesPath=D:/DevPlateForm/Eclipse/workspaces/freeMakerTest/src/templates;

文档评论(0)

1亿VIP精品文档

相关文档