freemarker使用教程(适合初学者)
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>();//定义要返回的mapList<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使用教程(适合初学者)相关推荐
- 【前端实例代码】Html5+css3创建拟物风格昏昏欲睡的云朵动画网页效果~前端开发网页设计基础入门教程~适合初学者~超简单~
b站视频演示效果: [前端实例代码]Html5+css3创建拟物风格昏昏欲睡的云朵动画网页效果!前端开发网页设计基础入门教程!适合初学者~超简单~ 效果图: 完整代码: <!DOCTYPE ht ...
- Django----做一个简单网页的教程(适合初学者)
这篇文字适合刚学习Django的同学,如果比较熟的就不用看了. 以下都是讲在windows上的部署情况: 准备: 1.python3.6 2.pycharm profession(专业版) 3.安装D ...
- autojs使用教程(适合初学者)
autojs是什么?请百度一下.本教程基于autojs4,文末有下载连接.你需要做好以下准备: 1.一台安卓手机或者模拟器,建议安卓版本>=7.0. 2.下载好apk的安装到手机或模拟器.各大应 ...
- 有什么好的Java自学教程视频,适合初学者
动力节点Java培训最新上线Java实验班,等你来测试自己适不适合学习Java编程哦! 随着互联网的发展,视频教程充斥着网络,很多人为了能够在视频教程中捞取一桶金,纷纷投入视频售卖的大军之中,其中不乏 ...
- cam350怎么看顶层_蛋糕胚速学教程大全,适合初学者看哦!
蛋糕胚速学教程大全,适合初学者看哦! 烘焙蛋糕最难的还是装饰,对手残星人来说,好不容易切好了蛋糕胚,抹面费了老大劲还是凹凸不平,做出来像狗狗啃过似的-快来看这份蛋糕抹面技巧,教你做出令人赏心悦目的奶油 ...
- C#基础教程-c#实例教程,适合初学者
C#基础教程-c#实例教程,适合初学者. 第一章 C#语言基础 本章介绍C#语言的基础知识,希望具有C语言的读者能够基本掌握C#语言,并以此为基础,能够进一步学习用C#语言编写window应用程序和W ...
- 一个适合初学者的Ant教程
一个适合初学者的Ant教程 一,构建ant环境 要使用ant首先要构建一个ant环境,步骤很简单: 1),安装jdk,设置JAVA_HOME ,PATH ,CLASS_PATH(这些应该是 ...
- php注册登录代码初学,php 用户注册实例代码,适合初学者_PHP教程
php教程 用户注册实例代码,适合初学者 if($_POST[submit]){ checkusername($_POST[username]); if($_SESSION["code&qu ...
- 推荐10个适合初学者的 HTML5 入门教程
HTML5 作为下一代网站开发技术,无论你是一个 Web 开发人员或者想探索新的平台的游戏开发者,都值得去研究.借助尖端功能,技术和 API,HTML5 允许你创建响应性.创新性.互动性以及令人惊叹的 ...
最新文章
- Mono 把 .NET 应用程序移植到 Linux
- python3安装scrapy问题解决
- 【BZOJ2286】消耗战(虚树,动态规划)
- springcloud hystrix概述(一)
- <button>与<input type =“ button” />。使用哪个?
- mysql同时往两个表插数据_MySQL 的两个特殊数据类型属性 unsigned与 zerofill
- Host aggregate分区
- 计算机网络从入门到放弃,自由讨论 | KBQA从入门到放弃—入门篇
- C++ 对象模型学习记录(3)--- 第1章 关于对象(未完)
- tcpdump抓包+wireshark分析配合使用(二)
- window里dig命令跟踪域名DNS解析
- nexus+4+android+6,Android 4.1.1+Nexus S安装BT5
- 《西部世界》在线观看与观后感
- linux系统显卡显存容量,Linux下检查显存大小
- 利用PCL库做简单的三维立体图形
- 人工智能的前景 | 钱颖一对话张首晟、饶毅、马化腾
- [MySQL][ODBC 3.51 Driver][mysqld-5.5.37-log]Table 'ldk2.T_User' doesn't exist问题解决
- 盘点8款流行的网红纱帘,以及它们的特点 - 江南爱窗帘十大品牌
- rtmp直播和webrtc直播对比优劣何在?
- Overlapping Experiment Infrastructure,重叠(分层)实验架构。
热门文章
- http-一次完整的HTTP请求过程-六个阶段
- java键盘有时失效_Java-摆动键盘无响应
- 6月随感 ----招android开发(跳槽的看过来)
- 华为p50官方首曝鸿蒙,华为P50发布日期曝光!出厂预装鸿蒙体系:流畅体验媲美iOS...
- 将字符串转换为与之对应的16进制字符串
- 谷歌chromeos_谷歌新操作系统Fuchsia网站上线,同时支持手机和PC,鼓励开发者参与进来...
- mybatis总结归纳
- Django 省、市、区 三级联动 及数据库的地址添加 !!!
- 3D检测入门 - KITTI数据集
- 【初学者必看】图像处理入门,二值图像形态学(binary morphology)^_^