假如你现在还在为自己的技术担忧,假如你现在想提升自己的工资,假如你想在职场上获得更多的话语权,假如你想顺利的度过35岁这个魔咒,假如你想体验BAT的工作环境,那么现在请我们一起开启提升技术之旅吧,详情请点击http://106.12.206.16:8080/qingruihappy/index.html
一、 创建FreeMarker模板文件user.ftl
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模板文件动态绑定的数据对象类User.java(Sring中pojo)
1 User.java 2 //..省略包的导入 3 public class User{ 4 private String userName; 5 private String userPassword; 6 …省略 getter()与setter方法 7 }
三、 创建FreeMarker模板文件解析器类FreeMarkertUtil
1 FreeMarkertUtil.java 2 //省略包的导入 3 Public class FreeMarkerUtil{ 4 //templatePath模板文件存放路径 5 //templateName 模板文件名称 6 //filename 生成的文件名称 7 public static void analysisTemplate ( String templatePath,String templateName,String fileName,Map<?,?>root ){ 8 try { 9 Configuration config=new Configuration(); 10 // 设置要解析的模板所在的目录,并加载模板文件 11 config.setDirectoryForTemplateLoading(new File(templatePath)); 12 //设置包装器,并将对象包装为数据模型 13 config.setObjectWrapper(new DefaultObjectWrapper()); 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生成静态页面测试类ClientTest.java
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 Map<String,Object> root=new HashMap<String, Object>(); 8 root.put("user", user); 9 String templatesPath="D:/DevPlateForm/Eclipse/workspaces/freeMakerTest/src/templates"; 10 String templateFile="/user.ftl"; 11 String htmlFile=templatesPath+"/user.html"; 12 FreeMarkertUtil.analysisTemplate(templatesPath,templateFile,htmlFile,root); 13 } 14 }