根据提供的文件信息,我们可以深入探讨FreeMarker的基础语法及其在模板引擎中的应用。FreeMarker是一种用于生成文本输出的模板引擎,广泛应用于Web开发中,能够帮助开发者动态生成HTML、XML等格式的内容。接下来,我们将逐一解析文件中提到的关键知识点。 ### 1. 控制结构 #### if, else, elseif FreeMarker支持条件语句`if`,可以进行逻辑判断,并根据不同的条件执行不同的代码块。`if`语句可以与`else`和`elseif`一起使用来处理多分支逻辑。 ```fml <#if condition> ... // 如果condition为真,则执行这部分内容 <#elseif condition2> ... // 如果condition2为真,则执行这部分内容 <#else> ... // 否则执行这部分内容 </#if> ``` #### switch, case, default, break 类似于其他编程语言中的`switch`语句,FreeMarker也提供了`switch`结构来实现更简洁的多分支选择。 ```fml <#switch value> <#case refValue1> ... // 如果value等于refValue1,则执行这部分内容 <#break> <#case refValue2> ... // 如果value等于refValue2,则执行这部分内容 <#break> ... <#default> ... // 默认情况,当所有case都不匹配时执行 </#switch> ``` ### 2. 循环结构 #### list, break FreeMarker支持对序列(如列表)进行循环处理,同时提供了`break`语句用于提前终止循环。 ```fml <#list sequence as item> ... // 处理每个item <#if item == "特定值"> <#break> // 当遇到特定值时,跳出循环 </#if> </#list> ``` ### 3. 包含文件 #### include FreeMarker允许将一个模板文件包含到另一个模板文件中,这有利于代码复用和维护。 ```fml <#include filename> ``` 也可以传递额外的参数: ```fml <#include filename options> ``` 其中`options`可以指定编码方式等选项。 ### 4. 导入文件 #### Import 通过`import`语句,可以在模板中导入其他模板文件或Java类,这使得可以使用那些模板或类中定义的方法和变量。 ```fml <#import path as alias> ``` 这里的`alias`是导入文件的一个别名,可以在当前模板中通过这个别名来引用导入文件中的方法和变量。 ### 5. 压缩 #### compress 为了生成更紧凑的HTML或XML输出,FreeMarker提供了一个压缩功能,它可以移除输出中的空白字符。 ```fml <#compress> ... </#compress> ``` ### 6. 其他注意事项 #### 转义 FreeMarker提供了`escape`和`noescape`指令来控制字符串的转义行为。例如,可以使用`noescape`来避免对特殊字符进行转义。 #### 变量获取 FreeMarker提供了多种方式来访问变量。例如,可以通过`$variable`的方式直接访问变量,或者使用`variable`来访问。 #### 隐式值 当变量未被定义时,FreeMarker会默认返回一个隐式值。可以通过设置`default`关键字来改变这种行为。 #### 空值判断 FreeMarker提供了一种简单的方式来检查变量是否为空或`null`。 #### 表达式转换 FreeMarker支持各种表达式的转换,包括算术运算、比较运算等。 ### 结论 FreeMarker是一个强大的模板引擎,它提供了丰富的语法特性来支持Web开发中的动态内容生成。通过上述介绍,我们可以了解到FreeMarker如何通过其灵活的控制结构、循环机制以及文件包含和导入等功能来满足Web应用程序的需求。掌握了这些基础知识后,开发者就可以更高效地利用FreeMarker来构建动态网页。













freemark开发指南(入门)----转载2007-06-13 17:20freemark开发指南(入门)2007-05-08 18:391概念
2指令
if, else, elseif
switch, case, default, break
list, break
include
Import
compress
escape, noescape
assign
global
setting
macro, nested, return
t, lt, rt
3一些常用方法或注意事项
表达式转换类
数字循环
对浮点取整数
给变量默认值
判断对象是不是null
常用格式化日期
添加全局共享变量数据模型
直接调用java对象的方法
字符串处理(内置方法)
在模板里对sequences和hashes初始化
注释标志
sequences内置方法
hashes内置方法
4 freemarker在web开发中注意事项
view中值的搜索顺序
在模板里ftl里使用标签
如何初始化共享变量
与webwork整合配置
5高级方法
自定义方法
自定义 Transforms
1概念
最常用的3个概念
sequence 序列,对应java里的list、数组等非键值对的集合
hash 键值对的集合
namespace 对一个ftl文件的引用,利用这个名字可以访问到该ftl文件的资源
2指令
if, else, elseif
语法
<#if condition>
...
<#elseif condition2>
...
<#elseif condition3>
...
...
<#else>
...
</#if>
用例
<#if x = 1>
剩余23页未读,继续阅读


- 粉丝: 2
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 基于51单片机的温室大棚温湿度检测报警系统方案设计书.doc
- 嵌入式系统-概述.ppt
- 单片机的模糊温度控制器的设计实施方案.doc
- ADEL酒店门锁接口软件安装.doc
- 单片机遥控开关设计方案.doc
- 教学实践中如何高效管理计算机实验室.docx
- 图像处理实验研究报告.doc
- 计算机网络系统综合防雷设计实施方案实施方案.doc
- 通信原理2011B答案.doc
- 巧用网络空间-助力学校内涵发展的策略研究.docx
- 试论加强血站档案管理工作信息化建设的有效措施.docx
- MPS系统机械手站单元的设计方案与PLC控制.doc
- 企业应用软件通用安全规范.docx
- Mysql安装注意事项.doc
- 某电子商务项目研究报告.doc
- 应用型大学数据库学科实践教学体系探索.docx


