概述
freemarker在一些门户网站都会被使用到,其主要原因在于加载速度快,如果页面变动不大,可以考虑使用freemarker。
freemarker相比jsp主要区别在于freemarker是单纯的数据显示,而jsp可以进行数据操作,包括写java代码处理后台数据,jsp功能强大,但是这样破坏了传统的mvc模式,如果在jsp进行数据库等操作,很不利于管理。而freemarker则不能在*.ftl操作后台数据,这个可能是差别最大的吧,个人见解。
今天要讲的是使用freemarker将*.ftl模板文件转成html文件,以下是一个小demo。
整个操作流程大概是这样的:建立hello.ftl文件,在控制层进行数据传入,使用freemarker将文件保存成html。
如果是使用myeclipse做开发,可以下载一个插件安装教程可以参考这个网址:http://it.oyksoft.com/post/5899/;
好了,现在开始第一个freemarker demo;
1:新建hello.ftl
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>First freemarker </title>
</head>
<body>
测试hello:${message}
<#-- 使用FTL指令 -->
<#-- 1:针对list进行遍历 -->
<#list userList as user><br>
${user.firstname} : ${user.lastname} 年龄: ${user.age}<br>
</#list><br>
<br>
</body>
</html>
2:在类中Hello.java
Configuration cfg = new Configuration();
//将ftl文件放在resource下的flt文件夹下
cfg.setDirectoryForTemplateLoading(new File(Hello.class.getResource("/")+ "ftl"));
//设置对象默认的包装器
cfg.setObjectWrapper(new DefaultObjectWrapper());
//设计异常处理器
cfg.setTemplateExceptionHandler(TemplateExceptionHandler.IGNORE_HANDLER);
//最终是要以map形式返回到hello.ftl中,和json很相似
Map<Object, Object> root = new HashMap<Object, Object>();//定义要返回的map
List<User> list=new ArrayList<User>();
list.add(new User("张", "xiaoxiao",20));
list.add(new User("刘", "binbin",22));
list.add(new User("李", "moumou",21));
//将数据加入root的map中
root.put("persion", "小吴");
root.put("userList", list);
//获取resource下的flt文件夹下的模板文件
Template template = cfg.getTemplate("test.ftl");
//定义输入文件,将生产的文件放在本地,指定生成的编码格式
Writer out = new OutputStreamWriter(new FileOutputStream("F:"+File.separetor+"hello.html"),"UTF-8");
template.process(root, out);
}
3:定义完运行一下main方法就可以获取到hello.html。初学者主要能够从小demo中收获freemarker的运作方式即可。接下来就可以开始学习语法。
觉得帮到你的朋友点个赞,有问题可以下方评论。接下来会讲到进阶的语法。最后面会分享代码生成模板,欢迎关注。
如果您有兴趣,欢迎加入it成长之路学习交流群:728603969,群主会不定时的分享学习材料哦
最后
以上就是香蕉冬日为你收集整理的freemarker使用教程(适合初学者)如果您有兴趣,欢迎加入it成长之路学习交流群:728603969,群主会不定时的分享学习材料哦的全部内容,希望文章能够帮你解决freemarker使用教程(适合初学者)如果您有兴趣,欢迎加入it成长之路学习交流群:728603969,群主会不定时的分享学习材料哦所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复