Freemarker技术全攻略:从入门到精通

需积分: 6 3 下载量 175 浏览量 更新于2024-07-28 1 收藏 590KB DOC 举报
"Freemaker_入门+深入+开发指南+学习笔记" Freemarker是一个强大的模板引擎,常用于Java Web应用中的视图层渲染。它允许开发者将逻辑和展示分离,使得HTML页面的设计人员可以专注于页面布局,而开发人员则处理业务逻辑。以下是关于Freemarker的关键知识点: 1. 基本语法:Freemarker的所有内容都被包含在`<#>`标记内,外部的内容会被原样输出。`<@/>`用于调用函数。指令或函数名通常由第一个符号后跟随参数。 2. 控制结构: - `<#if condition>...<#elseif condition>...<#else>...<#endif>`:条件判断,根据条件执行不同的代码块。 - `<#list hash_or_seq as var>`:遍历哈希表或集合(Freemarker称之为sequence)的每个元素,`var`代表当前元素的引用。 3. 宏与函数: - `<#macro macro_name param1 param2>...<#nested param>...<#end>`:定义宏,`<#nested>`用于处理宏的嵌套。 - `<#function name param1 param2>...<#return val>...<#end>`:定义函数,可以有返回值。 4. 内置转换函数(Build-ins): - `var?member_function()`:应用内置函数到变量`var`上,例如类型转换、字符串操作等。 5. 字符串操作: - `stringA[M..N]`:截取子字符串,类似于Java的`substring()`方法。 6. 数据结构操作: - `{key:value, key2:value2}`:直接定义一个哈希表。 - `[item0, item1, item2]`:直接创建一个序列。 - `hash0[key0]`:访问哈希表中键为`key0`的元素。 - `seq0[5]`:获取序列中索引为5的元素。 7. 函数调用: - `<@function1 param0 param1/>`:调用名为`function1`的函数。 8. 宏调用与递归: - `<@macro0 param0 param1; nest_param0 nest_param1>nest_body</@macro>`:调用宏并处理嵌套参数。 - `<#recurse xmlnode>`:在XML节点的子节点上递归调用宏。 9. 变量定义: - `<#assign var=value>`:定义全局变量。 - `<#local var=value>`:在宏或函数内部定义局部变量。 - `<#global var=value>`:定义全局变量。 10. 输出表达式: - `${var}`:输出变量`var`的值,Freemarker会将其替换为对应的表达式结果。 11. XML处理: - `<#visit xmlnode>`:调用宏处理XML节点及其子节点。 - `<#recurse xmlnode>`:仅处理XML节点的子节点。 通过这些基础和高级特性,Freemarker允许开发者构建动态的、数据驱动的模板,实现了灵活的页面渲染。在学习过程中,深入理解这些概念并实践它们的应用,可以帮助开发者更好地掌握Freemarker,提升Web应用的开发效率。