FreeMarker Template Language
FTL是一套
网页模板引擎
, 基于模板和数据动态地生成网页。
它不面向最终用户, 而是通过java加载网页后再进行展示。
与jsp(JavaServer Page)的区别
- J 可以编写java代码, 功能强大 +
-
F 不能编写java代码, 但实现了
前后端分离
++ -
不易破坏mvc结构
- 普通页面性能: velocity>jsp>freemarker
- 复杂页面性能: freemarker>>使用tag和el表达式的jsp
- J, F 都支持jsp标签,
- J 是官方标准, 用户广泛, 第三方类库繁多
- F 内置大量常用功能, 使用方便, 受众稍小, 非官方
综上:
FreeMarker的优劣性
- 优一: 彻底分离了表现层和业务逻辑, 预防后期页面中的大量业务代码导致内容凌乱, 维护困难
- 优二: 无需像JSP那样转换成Servlet类, 节省编译和转换的时间。
- 优三: 还是优点一, 只是分工更加明确, 节省了前端后端开发人员的协调时间
- 缺一: Ftl生成的静态Html页面, 一旦模板改变html也要及时更新, 否则显示旧数据
- 缺二: Ftl中的变量必须赋值, 如果不赋值会抛异常, 因此用到大量的if else判断, 反而增加了代码量
- 缺三: map的key必须是String
- 缺四: 不支持集群
值得思考的点:
美工和技术工作分离是否只是神话?
逻辑分离是否是过于纯粹的无用功? 复杂项目真的能这么纯粹吗?
版权声明:本文为ahornbeast原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。