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使用教程(适合初学者)相关推荐

  1. 【前端实例代码】Html5+css3创建拟物风格昏昏欲睡的云朵动画网页效果~前端开发网页设计基础入门教程~适合初学者~超简单~

    b站视频演示效果: [前端实例代码]Html5+css3创建拟物风格昏昏欲睡的云朵动画网页效果!前端开发网页设计基础入门教程!适合初学者~超简单~ 效果图: 完整代码: <!DOCTYPE ht ...

  2. Django----做一个简单网页的教程(适合初学者)

    这篇文字适合刚学习Django的同学,如果比较熟的就不用看了. 以下都是讲在windows上的部署情况: 准备: 1.python3.6 2.pycharm profession(专业版) 3.安装D ...

  3. autojs使用教程(适合初学者)

    autojs是什么?请百度一下.本教程基于autojs4,文末有下载连接.你需要做好以下准备: 1.一台安卓手机或者模拟器,建议安卓版本>=7.0. 2.下载好apk的安装到手机或模拟器.各大应 ...

  4. 有什么好的Java自学教程视频,适合初学者

    动力节点Java培训最新上线Java实验班,等你来测试自己适不适合学习Java编程哦! 随着互联网的发展,视频教程充斥着网络,很多人为了能够在视频教程中捞取一桶金,纷纷投入视频售卖的大军之中,其中不乏 ...

  5. cam350怎么看顶层_蛋糕胚速学教程大全,适合初学者看哦!

    蛋糕胚速学教程大全,适合初学者看哦! 烘焙蛋糕最难的还是装饰,对手残星人来说,好不容易切好了蛋糕胚,抹面费了老大劲还是凹凸不平,做出来像狗狗啃过似的-快来看这份蛋糕抹面技巧,教你做出令人赏心悦目的奶油 ...

  6. C#基础教程-c#实例教程,适合初学者

    C#基础教程-c#实例教程,适合初学者. 第一章 C#语言基础 本章介绍C#语言的基础知识,希望具有C语言的读者能够基本掌握C#语言,并以此为基础,能够进一步学习用C#语言编写window应用程序和W ...

  7. 一个适合初学者的Ant教程

    一个适合初学者的Ant教程       一,构建ant环境 要使用ant首先要构建一个ant环境,步骤很简单: 1),安装jdk,设置JAVA_HOME ,PATH ,CLASS_PATH(这些应该是 ...

  8. php注册登录代码初学,php 用户注册实例代码,适合初学者_PHP教程

    php教程 用户注册实例代码,适合初学者 if($_POST[submit]){ checkusername($_POST[username]); if($_SESSION["code&qu ...

  9. 推荐10个适合初学者的 HTML5 入门教程

    HTML5 作为下一代网站开发技术,无论你是一个 Web 开发人员或者想探索新的平台的游戏开发者,都值得去研究.借助尖端功能,技术和 API,HTML5 允许你创建响应性.创新性.互动性以及令人惊叹的 ...

最新文章

  1. Mono 把 .NET 应用程序移植到 Linux
  2. python3安装scrapy问题解决
  3. 【BZOJ2286】消耗战(虚树,动态规划)
  4. springcloud hystrix概述(一)
  5. <button>与<input type =“ button” />。使用哪个?
  6. mysql同时往两个表插数据_MySQL 的两个特殊数据类型属性 unsigned与 zerofill
  7. Host aggregate分区
  8. 计算机网络从入门到放弃,自由讨论 | KBQA从入门到放弃—入门篇
  9. C++ 对象模型学习记录(3)--- 第1章 关于对象(未完)
  10. tcpdump抓包+wireshark分析配合使用(二)
  11. window里dig命令跟踪域名DNS解析
  12. nexus+4+android+6,Android 4.1.1+Nexus S安装BT5
  13. 《西部世界》在线观看与观后感
  14. linux系统显卡显存容量,Linux下检查显存大小
  15. 利用PCL库做简单的三维立体图形
  16. 人工智能的前景 | 钱颖一对话张首晟、饶毅、马化腾
  17. [MySQL][ODBC 3.51 Driver][mysqld-5.5.37-log]Table 'ldk2.T_User' doesn't exist问题解决
  18. 盘点8款流行的网红纱帘,以及它们的特点 - 江南爱窗帘十大品牌
  19. rtmp直播和webrtc直播对比优劣何在?
  20. Overlapping Experiment Infrastructure,重叠(分层)实验架构。

热门文章

  1. http-一次完整的HTTP请求过程-六个阶段
  2. java键盘有时失效_Java-摆动键盘无响应
  3. 6月随感 ----招android开发(跳槽的看过来)
  4. 华为p50官方首曝鸿蒙,华为P50发布日期曝光!出厂预装鸿蒙体系:流畅体验媲美iOS...
  5. 将字符串转换为与之对应的16进制字符串
  6. 谷歌chromeos_谷歌新操作系统Fuchsia网站上线,同时支持手机和PC,鼓励开发者参与进来...
  7. mybatis总结归纳
  8. Django 省、市、区 三级联动 及数据库的地址添加 !!!
  9. 3D检测入门 - KITTI数据集
  10. 【初学者必看】图像处理入门,二值图像形态学(binary morphology)^_^