FreeMarker 模板引擎

(本文出处于网上百度查询搜索借鉴而来)https://www.cnblogs.com/itdragon/p/7750903.html

FreeMarker它是基于模板文件生成其他文本的通用工具。FreeMarker生成Html web 页面 和 代码自动生成工具快速了解了一下FreeMarker。

FreeMarker是一款用java语言编写的模版引擎,它虽然不是web应用框架,但它很合适作为web应用框架的一个组件。

特点:

1. 轻量级模版引擎,不需要Servlet环境就可以很轻松的嵌入到应用程序中

2. 能生成各种文本,如html,xml,java,等

3. 入门简单,它是用java编写的,很多语法和java相似

工作原理:(借用网上的图片)

1. 知道了FreeMarker是一块模版引擎,可以生产xml,html,java等文件

2. 知道了FreeMarker文件提供占位符,java文件提供数据,通过FreeMarker模版引擎生产有数据的页面,文中是将数据放在Map中。web应用可以用setter/getter 方法

3. 知道了FreeMarker语法中字符串的显示特殊字符,截取的操作。以及一些内置方法的使用

4. 重点了解FreeMarker的空判断知识点。判断变量是否为空用 "??" ,如果变量为空设置默认值。如果不注意空问题,可能会出现黄色页面的提示哦!

5. FreeMarker的宏概念,命名空间,引入文件,给变量赋值,集合的遍历等。

6. Freemarker 整合SpringMVC。

7.在项目中开发工具使用idea,springboot,springboot前段常使用模板引擎FreeMarker,thymeleaf,java语言编写渲染模板文本,使界面设计和应用逻辑分离.

工程项目上运行我也是在学习。。。

FreeMarker最初的设计,是被用来在MVC模式的Web开发框架中生成HTML页面的,没有被绑定到Servlet或HTML或任意Web相关的东西上,它也可以用于非Web应用环境中。

工作原理

假设在一个应用系统中需要一个HTML页面如下:

1

2

3

4

5

6

7

8

9

10

<html>

    <head>

        <title>Welcome!</title>

    </head>

    <body>

        <h1>Welcome Big Joe!</h1>

        <p>Our latest product:

        <a href="products/greenmouse.html">green mouse</a>!

    </body>

</html>

页面中的用户名(即上面的“Big Joe”)是登录这个网页的访问者的名字, 并且最新产品的数据应该来自于数据库才能随时更新。所以,不能直接在HTML页面中输入“Big Joe”、“greenmouse”及链接, 不能使用静态HTML代码。可以使用要求输出的模板来解决,模板和静态页面是相同的,只是它会包含一些FreeMarker将它们变成动态内容的指令:

1

2

3

4

5

6

7

8

9

10

<html>

    <head>

        <title>Welcome!</title>

    </head>

    <body>

        <h1>Welcome ${user}!</h1>

        <p>Our latest product:

        <a href="${latestProduct.url}">${latestProduct.name}</a>!

    </body>

</html>

模板文件存放在Web服务器上,当有人来访问这个页面,FreeMarker就会介入执行,然后动态转换模板,用最新的数据内容替换模板中${...}的部分,之后将结果发送到访问者的Web浏览器中。访问者的Web浏览器就会接收到例如第一个HTML示例那样的内容(也就是没有FreeMarker指令的HTML代码),访问者也不会察觉到服务器端使用的FreeMarker。(存储在Web服务器端的模板文件是不会被修改的;替换也仅仅出现在Web服务器的响应中。)

 为模板准备的数据整体被称作为数据模型。数据模型是树形结构(就像硬盘上的文件夹和文件),在视觉效果上, 数据模型可以是(这只是一个形象化显示,数据模型不是文本格式,它来自于Java对象):

(root)

  |

  +- user = "Big Joe"

  |

  +- latestProduct

      |

      +- url = "products/greenmouse.html"

      |

      +- name = "green mouse"

 

早期版本中,可以从数据模型中选取这些值,使用user和latestProduct.name表达式即可。类比于硬盘的树形结构,数据模型就像一个文件系统,“(root)”和latestProduct就对应着目录(文件夹),而user、url和name就是这些目录中的文件。

总体上,模板和数据模型是FreeMarker来生成输出所必须的组成部分:模板 + 数据模型 = 输出

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值