摘要: freemarker的变量可以分为四种,分别是数据模型的变量【root中的变量】,模板中的变量使用【<#assign>定义的变量】,局部变量【在指令中的变量】,循环变量【在循环中的变量】
freemarker的变量可以分为四种,分别是数据模型的变量【root中的变量】,模板中的变量使用【<#assign>定义的变量】,局部变量【在指令中的变量】,循环变量【在循环中的变量】
数据模型的变量【root中的变量】
直接从模型中给模板传值的变量就是数据模型的变量,它把变量的值放在一个map中,在模板中直接可以用。
@Test
publicvoidtest10()
{
root.put("username","张三");
fu.print("10.ftl",root);
}
|
${username}
|
张三
|
模板中的变量使用【<#assign>定义的变量】
模板中的变量,是使用<#assign定义的变量,如果模板中定义的变量和模型中的变量名称一致,不是覆盖,而是隐藏
<#assignusername="李四">
<#--此时模板中的变量的名称和模型中的变量名称一致,不是覆盖,而是隐藏-->
${username}
|
李四
|
模型中的变量被隐藏后,可以使用.globals可以访问模型中的变量
<#--使用.globals可以访问模型中的变量-->
${.globals.username}
|
张三
|
局部变量【在指令中的变量】
使用local可以声明局部变量
<#macro test>
<#--
此时当调用该指令之后,会将模板中的变量username覆盖为王五
所以这种方式存在风险,所以一般不使用这种方式在指令中定义变量
-->
<#--<#assign username="王五"/>-->
<#--使用local可以声明局部变量,所以在marco中非特殊使用局部变量-->
<#local username="王五"/>
${username}
</#macro>
<@test/>
${username}
|
王五
李四
|
循环变量【在循环中的变量】
在list循环中定义的变量,循环中的变量只在循环中有效,也是一种临时的变量定义方式
<#list 1..3 asusername>
<#--循环中的变量出了循环就消失-->
${username}
</#list>
${username}
|
1
2
3
李四
|
本文链接:FreeMarker四种变量的用法,本文由huangyineng原创,转载请注明出处
分享到:
相关推荐
4. Collection Variables:Collection Variables是一种特殊的Sequences,除了无法访问它的大小和不能使用索引来获得它的子变量外,其他行为与Sequences相同。 5. Methods:Methods是基于给出的参数计算,以新对象...
接下来我们通过一个具体的示例来理解 Freemarker 的使用方法: ```html <title>Welcome! <!-- 注释部分 --> <h1>Welcome ${user}! <p>We have these animals: ${being.name} for ${being.price} Euros...
### FreeMarker 使用方法详解 #### 一、FreeMarker 概述与特性 ##### 1.1 通用目标 - **生成各种文本**:FreeMarker 的核心功能在于它能生成多种类型的文本输出,包括但不限于 HTML、XML、RTF、Java 源代码等。 -...
FreeMarker使用${...}表达式来插入变量,#{...}用于输出注释,以及、等控制结构进行条件判断和循环。然而,这些默认标签可能无法满足所有复杂的场景,因此自定义标签就显得尤为必要。 自定义FreeMarker标签通常涉及...
6. **模板文档**:插件可能还提供内置的Freemarker文档链接,便于查阅官方文档,学习和理解更多关于Freemarker的用法。 7. **整合开发环境**:由于Freemarker-IDE插件是为Eclipse设计的,所以它能够无缝集成到...
这个"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")} ``` 以上就是 ...
4. **函数和方法**:Freemarker支持自定义函数和方法,可以使用内置的函数库,如字符串操作、数学计算等,也可以扩展自定义函数来满足特定需求。 5. **模板继承和导入**:通过`<#import>`和`<#extends>`,模板可以...
对于初学者来说,使用这样的插件可以更快地掌握Freemarker语言的规则和用法。对于经验丰富的开发者,它可以帮助他们更快地完成日常编码任务,降低因为语法错误导致的问题。总的来说,"freemarker编辑插件"是提高...
FreeMarker的核心概念是模板文件,这是一种特殊的文本文件,其中包含可替换的占位符(称为变量或指令)。当模板与数据模型合并时,这些占位符会被相应的数据值替换,生成最终的输出。FreeMarker支持多种内置指令和...
- **Bean包裹**:Freemarker提供了一种称为“Bean包裹”的机制,用于处理Java Bean对象,使其更易于在模版中使用。 通过以上知识点的深入理解和实践,开发者可以有效地利用Freemarker来构建高效、可维护的Web应用...
本入门文档结合实例,旨在帮助初学者快速理解并掌握Freemarker的基本用法。 一、Freemarker基本概念 1. 模板:Freemarker模板是纯文本文件,其中包含静态文本和控制结构,如条件语句和循环。它们用来生成最终输出。...
### FreeMarker实例教程知识点详解 ...以上知识点覆盖了FreeMarker的主要方面,通过本教程的学习,读者不仅能够掌握FreeMarker的基本使用方法,还能够深入了解其高级特性,为日后解决复杂的Web开发问题打下坚实的基础。
以上介绍的内容,都源自于FreeMarker模板引擎的基本概念、配置和使用方法。在实际开发中,FreeMarker的应用非常广泛,尤其是Web开发领域。通过熟练掌握FreeMarker,开发者可以有效地将页面设计与后端代码分离,提高...