FreeMarker是一款模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页、电子邮件配置文件源代码等)的通用工具。 它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。

按照官方的说法,使用FreeMarker实现逻辑和视图分离,

FreeMarker不同于JSP的地方。
FreeMarker支持模板,可以在不改变业务逻辑的情况下动态调整视图。
 是的,JSP确实也能做到模板化。但是JSP本身不支持模板化,如果要做到FreeMarker的模板功能,恐怕要有很多开发工作量。
可能又有人会说:如果用户要改界面,多写几套JSP代码供用户选择不就完了吗?
是,这样确实也能一定程度上支持模板化。但是这种模板必须要写代码、编译,然后发布版本。而FreeMarker的很重要的一点是定义一个新的视图,不需要写代码,不需要发版本,只需要定义一套新的模板即可。
所以总结下来,FreeMarker在类似于淘宝店的商品展示场景下使用,会比JSP更方便。
因为用户要把产品放到淘宝店的展台上,展示的商品会经常发生变化,有时候要对UI做一些美化、内容展示位置的调整等等。在这种情况下,只需要使用一个新的模板,就可以把UI进行改变。而无需对淘宝的平台代码进行修改。
这种情况下,用JSP就会没有多少优势了。

FreeMarker的应用场景的更多相关文章

  1. Spring Boot FreeMarker 使用教程

    FreeMarker 跟 Thymeleaf 一样,是一种模板引擎,他可以无缝兼容 FreeMarker 在 Spring Boot 开发者中仍然有着很高的地位. 本章重点内容 编写一个最简单的 Fr ...

  2. FreeMarker模板开发指南知识点梳理

    freemarker是什么? 有什么用? 怎么用? (问得好,这些都是我想知道的问题) freemarker是什么? FreeMarker 是一款 模板引擎: 即一种基于模板和要改变的数据, 并用来生 ...

  3. 二、freemarker.controller半自动静态化+Tomcat虚拟资源映射

    描述:本内容主要是讲2个tomcat之间同时共享一个静态话页面,统一入口是springMVC的一个controller,静态化的更新只需要传false.true.把完成的web项目放入a.b服务器To ...

  4. Freemarker 输出$和html标签等特殊符号

    场景:程序员都不喜欢看文档,而更喜欢抄例子.所以,我们把平台组的组件都做成例子供别人参考.我们前端展示层使用的是freemarker,所以 遇到这个问题,比如我们要让前端显示freemarker自己的 ...

  5. Freemarker常用技巧(三)

    freemarker模板解析过程 例如:一个freemarker表达式<body> ${hello} </body>,会被解析成三个部分,分别是<body>${he ...

  6. 【转】Freemarker输出$和html标签等特殊符号

    原文:http://blog.csdn.net/achilles12345/article/details/41820507 场景:程序员都不喜欢看文档,而更喜欢抄例子.所以,我们把平台组的组件都做成 ...

  7. 网页静态化技术Freemarker的详细介绍

    网页静态化技术Freemarker 一.Freemarker的基本介绍 1.1为什么要使用网页静态化技术 网页静态化解决方案在实际开发中运用比较多,例如新闻网站,门户网站中的新闻频道或者是文章类的频道 ...

  8. Spring-Security+Freemarker 开启跨域请求伪造防护功能

         CSRF简介--摘抄自<Spring实战(第4版)> 我们可以回忆一下,当一个POST请求提交到"/spittles"上时,SpittleController ...

  9. FreeMarker系列学习笔记

    FreeMarker是一个非常优秀的模板引擎,这个模板引擎可用于任何场景,FreeMarker负责将数据模型中的数据合并到模板中,从而生成标准输出.FreeMarker可以提供昜好的团队协作,对于界面 ...

随机推荐

  1. stm32自带的flash分布图

    缘由是要用到flash来保存数据,因此查阅了数据手册与参考手册,一般情况下,将要保存的数据存放到比较靠后的地方,page254,page255,4k字节,已经相当多的了,

  2. C语言蓝桥杯比赛原题和解析

    蓝桥杯:在计算机编程领域,是具有一定含金量的竞赛,用于选拔信息技术人才. 一般分为多个领域,其中包含了C/C#/C++/Java/Python等编程语言的测试题,多为算法的设计题. 下面,在搜题过程中 ...

  3. SPOJ - BALNUM - Balanced Numbers(数位DP)

    链接: https://vjudge.net/problem/SPOJ-BALNUM 题意: Balanced numbers have been used by mathematicians for ...

  4. Vue的响应式系统

    Vue的响应式系统 我们第一次使用Vue的时候,会感觉有些神奇,举个例子: <div id="app"> <div>价格:¥{{price}}</di ...

  5. django 第三天 视图

    今日内容 一.url路由分发之include 项目文件夹下的urls.py文件中的url写法: from django.conf.urls import url,include from django ...

  6. ES code study

    pom.xml <?xml version="1.0" encoding="UTF-8"?><project xmlns="http ...

  7. Problem 3 二维差分

    $des$ 考虑一个 n ∗ n 的矩阵 A,初始所有元素均为 0.执行 q 次如下形式的操作: 给定 4 个整数 r,c,l,s, 对于每个满足 x ∈ [r,r+l), y ∈ [c,x−r+c] ...

  8. Mac下打开/usr/local目录

    Mac下/usr/local目录默认是对于Finder是隐藏,如果需要到/usr/local下去,打开Finder,然后使用command+shift+G,在弹出的目录中填写/usr/local就可以 ...

  9. encode(编码)和decode(解码)方法

    JS对文字进行编码涉及3个函数:escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent 1 ...

  10. Linux 文件查询

    查看文件类型:file 如果你想要知道某个文件的基本数据,例如是属于ASCII或者是data文件,或者是binary,且其中有没有使用到动态函数库等等的信息,可以用file查看 which (寻找“执 ...