Freemarker 页面静态化详解

Freemarker的语言概述

FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写。

FreeMarker被设计用来生成HTML Web页面,特别是基于MVC模式的应用程序

虽然FreeMarker具有一些编程的能力,但通常由Java程序准备要显示的数据,由FreeMarker生成页面,通过模板显示准备的数据(如下图)


Freemarker的特性

分离了展示层和业务逻辑层

使用JSP开发过程中在页面中大量的存在业务逻辑的代码,使页面内容凌乱,在后期修改维护过程中变得非常困难。Freemarker根本不支持Java脚本代码,而是使用el表达式来展示数据。FreeMarker的设计初衷就是:模板 + 数据模型 = 输出,模板只负责在页面中展示,不涉及任何逻辑代码,而所有的逻辑都是由数据模型来处理。

降低数据库的压力

FreeMarker是将数据库中的数据做成页面静态化,这样就不需要 去数据库中去取数据,而是直接展现在页面。而页面静态化 主要用在电商的首页,或者其它地方。能够有效的减少数据库的压力。


FreeMarker的语法介绍

FreeMarker模板文件组成

1、文本,直接输出的部分

2、注释,即<#--...-->格式不会输出

3、FTL指令:FreeMarker指令,和HTML标记类似,名字前加#予以区分,不会输出

4、插值(Interpolation):即${..}或者#{..}格式的部分,将使用数据模型中的部分替代输出


 FTL指令规则

FreeMarker有三种FTL标签,这和HTML的标签是完全类似的

开始标签:<#directivename parameters>

结束标签:</#directivename>

空标签: <#directivename parameters />

实际上,使用标签时前面的#符号也可能变成@,如果该指令是一个用户指令而不是系统内建指令时,应将#符号改为@符号。


插值规则

FreeMarker的插值有如下两种类型

1、通用插值:${expr}

2、数字格式化插值:#{expr}或者#{expr;format}

表达式

表达式是FreeMarker的核心功能。表达式放置在插值语法(${...})之中时,表面需要输出表达式的值,表达式语法也可以与FreeMarker标签结合,用于控制输出

1、直接指定值

a、字符串: ${"我的文件保存在d:\\盘"};

b、数值

c、布尔值

d、日期型

FreeMarker支持date、time、datetime三种类型,这三种类型的值无法直接指定,通常需要借助字符串的date、time、datetime三个内建函数进行转换才可以

<#assigntest1 = "2015-01-22"?date("yyyy-MM-dd")/>;
<#assign test2="16:34:43"?time("HH:mm:ss") /> 
<#assigntest2 = "2015-01-2217:23:45"?datetime("yyyy-MM-dd HH:mm:ss") />
${test1?string.full}

e、集合

 集合以方括号包括,各集合元素之间以英文逗号(,)分隔,看如下的示例:

<#list["星期一",,["星期二",["星期三",["星期四",["星期五"] as x>

 ${s};

</#list>

f、Map集合

Map对象使用花括号包括,Map中的key-value对之间以英文冒号(:)隔开,多组key-value对之间以英文逗号(,)隔开:

<#assign score = {"语文":78,"数学":83,"Java":89} > 
<#list score?key as x>

${x}--->${score[x]};

</#list>

<spanstylespanstyle="font-family:sans-serif,arial,verdana,trebuchet ms;line-height:1.6em"> </span>

2、输出变量值

FreeMarker的表达式输出变量时,这些变量可以是顶层变量,也可以是Map对象中的变量,还可以是集合中的变量,并可以使用点(.)语法来访问Java对象的属性

a、顶层变量


//还有好多  就不写了   资源已上传

http://download.csdn.net/detail/lianmutian/9596168















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值