如何用FreeMarker生成静态页面
1个回答
展开全部
Name=renyibing&pointid=4863一、 FreeMarker生成静态页原理
众所周知,FreeMarker适合于作为Web应用的表现层,那么我们就把把页面中所需要的样式放入FreeMarker文件中,然后将页面所需要的数据动态绑定,并放入Map中,通过调用FreeMarker模板文件解析类process()方法完成静态页面的生成。了解了上面的原理,接下来四夕就一步步带您实现FreeMarker生成静态页面。
二、 创建FreeMarker模板文件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.javaUser.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文件,否则不能编译。
在我的工程中,您可以找到对应的文件。
众所周知,FreeMarker适合于作为Web应用的表现层,那么我们就把把页面中所需要的样式放入FreeMarker文件中,然后将页面所需要的数据动态绑定,并放入Map中,通过调用FreeMarker模板文件解析类process()方法完成静态页面的生成。了解了上面的原理,接下来四夕就一步步带您实现FreeMarker生成静态页面。
二、 创建FreeMarker模板文件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.javaUser.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文件,否则不能编译。
在我的工程中,您可以找到对应的文件。
Storm代理
2023-08-29 广告
2023-08-29 广告
"StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,I...
点击进入详情页
本回答由Storm代理提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询