转自:http://www.656463.com/article/286
freemarker的变量可以分为四种,分别是数据模型的变量【root中的变量】,模板中的变量使用【<#assign>定义的变量】,局部变量【在指令中的变量】,循环变量【在循环中的变量】
数据模型的变量【root中的变量】
直接从模型中给模板传值的变量就是数据模型的变量,它把变量的值放在一个map中,在模板中直接可以用。
@Test public void test10() { root.put("username","张三"); fu.print("10.ftl",root); } |
${username} |
张三 |
模板中的变量使用【<#assign>定义的变量】
模板中的变量,是使用<#assign定义的变量,如果模板中定义的变量和模型中的变量名称一致,不是覆盖,而是隐藏
<#assign username="李四"> <#--此时模板中的变量的名称和模型中的变量名称一致,不是覆盖,而是隐藏--> ${username} |
李四 |
模型中的变量被隐藏后,可以使用.globals可以访问模型中的变量
<#--使用.globals可以访问模型中的变量--> ${.globals.username} |
张三 |
局部变量【在指令中的变量】
使用local可以声明局部变量
<#macro test> <#-- 此时当调用该指令之后,会将模板中的变量username覆盖为王五 所以这种方式存在风险,所以一般不使用这种方式在指令中定义变量 --> <#--<#assign username="王五"/>--> <#--使用local可以声明局部变量,所以在marco中非特殊使用局部变量--> <#local username="王五"/> ${username} </#macro> <@test/> ${username} |
王五 李四 |
循环变量【在循环中的变量】
在list循环中定义的变量,循环中的变量只在循环中有效,也是一种临时的变量定义方式
<#list 1..3 as username> <#--循环中的变量出了循环就消失--> ${username} </#list> ${username} |
1 2 3 李四
|
相关推荐
4. Collection Variables:Collection Variables是一种特殊的Sequences,除了无法访问它的大小和不能使用索引来获得它的子变量外,其他行为与Sequences相同。 5. Methods:Methods是基于给出的参数计算,以新对象...
FreeMarker使用${...}表达式来插入变量,#{...}用于输出注释,以及、等控制结构进行条件判断和循环。然而,这些默认标签可能无法满足所有复杂的场景,因此自定义标签就显得尤为必要。 自定义FreeMarker标签通常涉及...
这个"freemarker Demo"项目应该包含了基本的模板文件、Struts2配置以及相关的Java代码,通过实际运行和修改这些文件,初学者可以更好地理解Freemarker的工作原理和使用方法。在学习过程中,可以逐步尝试不同的表达式...
以下是对FreeMarker核心概念、用法及常见应用的详细解释。 一、FreeMarker的基本概念 1. 模板:模板是FreeMarker的核心,它是HTML或其他文本文件,其中包含特定的FreeMarker指令和变量,这些元素在运行时会被数据...
此外,`test`包下的测试类展示了一种使用Freemarker的方式,通过构建数据模型并将其传递给模板,实现了动态内容的生成。 综上所述,Freemarker是一种强大的模板引擎,它能够高效地处理复杂的数据结构,并生成各种...
Freemarker和Velocity是两种广泛使用的模板引擎,它们在Java Web开发中扮演着重要的...通过阅读提供的"freemarker语法.doc"文档,你可以深入了解Freemarker的详细语法和使用方法,进一步提升你在这一领域的专业技能。
在 Struts2 环境中,Freemarker 可以读取后台程序的静态变量和静态方法。例如: ```html ${stack.findValue("@package.ClassName@method")} ${stack.findValue("@package.ClassName@property")} ``` 以上就是 ...
对于初学者来说,使用这样的插件可以更快地掌握Freemarker语言的规则和用法。对于经验丰富的开发者,它可以帮助他们更快地完成日常编码任务,降低因为语法错误导致的问题。总的来说,"freemarker编辑插件"是提高...
FreeMarker的核心概念是模板文件,这是一种特殊的文本文件,其中包含可替换的占位符(称为变量或指令)。当模板与数据模型合并时,这些占位符会被相应的数据值替换,生成最终的输出。FreeMarker支持多种内置指令和...
- **Bean包裹**:Freemarker提供了一种称为“Bean包裹”的机制,用于处理Java Bean对象,使其更易于在模版中使用。 通过以上知识点的深入理解和实践,开发者可以有效地利用Freemarker来构建高效、可维护的Web应用...
本入门文档结合实例,旨在帮助初学者快速理解并掌握Freemarker的基本用法。 一、Freemarker基本概念 1. 模板:Freemarker模板是纯文本文件,其中包含静态文本和控制结构,如条件语句和循环。它们用来生成最终输出。...
### FreeMarker实例教程知识点详解 ...以上知识点覆盖了FreeMarker的主要方面,通过本教程的学习,读者不仅能够掌握FreeMarker的基本使用方法,还能够深入了解其高级特性,为日后解决复杂的Web开发问题打下坚实的基础。
Freemarker是一个强大的模板引擎,常用于Web应用中的视图层渲染,比如Spring MVC框架就广泛使用了Freemarker作为其模板技术。本教程将基于提供的"freemarker编辑器"来详细介绍如何配置和使用Freemarker,以及它在...
以上介绍的内容,都源自于FreeMarker模板引擎的基本概念、配置和使用方法。在实际开发中,FreeMarker的应用非常广泛,尤其是Web开发领域。通过熟练掌握FreeMarker,开发者可以有效地将页面设计与后端代码分离,提高...
1. **模板语言FTL**: Freemarker使用的模板语言叫做FreeMarker Template Language (FTL),它是一种声明式的、非过程式的语言。FTL文件包含了一系列的指令和表达式,用于生成最终输出。例如,`<#if>`、`<#foreach>`、...