FreeMarker模板语言基础教程

需积分: 2 1 下载量 69 浏览量 更新于2024-07-28 收藏 578KB DOC 举报
"Freemarker基本语法详解" FreeMarker是一个开源模板引擎,主要用于生成动态Web内容。它与Java紧密集成,广泛应用于MVC架构中的视图层。以下是对Freemarker基本语法的详细说明: 1. **指令和函数的声明** - `<#>`:这是Freemarker模板的主要标记,用于包裹所有模板逻辑。在`<#>`之外的内容将被视为静态文本,直接输出。 - `<@>`:用于调用函数或宏。例如,`<@function1 param0 param1/>`。 2. **控制结构** - `<#if condition>`、`<#elseif condition>`、`<#else>`和`</#if>`:这些是条件语句,用于基于不同条件执行不同的模板部分。 - `<#list hash_or_seq as var>`:这个指令用于遍历哈希表或集合(在Freemarker中称为sequence),`var`是循环变量。 3. **宏和函数** - `<#macro macroName param1 param2>`:定义宏,`macroName`是宏名,`param1`和`param2`是参数。 - `<#nested param>`:在宏内使用,用于传递参数到嵌套的模板片段。 - `<#function functionName param1 param2>`:定义函数,`functionName`是函数名,`param1`和`param2`是参数,`<#return val>`用于返回函数结果。 4. **内置操作和转换** - `var?member_function()`:这是Freemarker的内置函数,如`var?upper_case`将变量`var`的值转换为大写。 - `stringA[M..N]`:用于截取字符串的一部分,类似于Java的`substring`方法。 5. **数据结构操作** - `{key:value, key2:value2}`:直接定义一个哈希表。 - `[item0, item1, item2]`:直接创建一个序列。 - `hash0[key0]`:访问哈希表中的元素。 - `seq0[5]`:访问序列中指定位置的元素。 6. **变量定义** - `<#assign var=value>`:定义并初始化全局变量。 - `<#local var=value>`:在宏或函数内部定义并初始化局部变量。 - `<#global var=value>`:定义并初始化全局变量。 7. **表达式输出** - `${var}`:输出变量`var`的值,Freemarker会根据变量类型进行适当的转换。 8. **XML处理** - `<#visit xmlNode>`:调用宏来处理XML节点及其子节点。 - `<#recurse xmlNode>`:仅处理XML节点的子节点。 以上就是Freemarker的基本语法要点,它允许开发者通过模板语言与后端数据结合,生成动态HTML或其他格式的文档。掌握这些基础,开发者就能创建出复杂的页面布局和逻辑,实现灵活的模板设计。