`
huaxin803
  • 浏览: 113860 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

FreeMarker四种变量的用法

 
阅读更多
摘要: 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原创,转载请注明出处


分享到:
评论

相关推荐

    freemarker语法完整版.doc

    4. Collection Variables:Collection Variables是一种特殊的Sequences,除了无法访问它的大小和不能使用索引来获得它的子变量外,其他行为与Sequences相同。 5. Methods:Methods是基于给出的参数计算,以新对象...

    超强freemarker使用总结,有示例有讲解,可做快速查询手册!!

    接下来我们通过一个具体的示例来理解 Freemarker 的使用方法: ```html &lt;title&gt;Welcome! &lt;!-- 注释部分 --&gt; &lt;h1&gt;Welcome ${user}! &lt;p&gt;We have these animals: ${being.name} for ${being.price} Euros...

    FreeMarker(使用方法)

    ### FreeMarker 使用方法详解 #### 一、FreeMarker 概述与特性 ##### 1.1 通用目标 - **生成各种文本**:FreeMarker 的核心功能在于它能生成多种类型的文本输出,包括但不限于 HTML、XML、RTF、Java 源代码等。 -...

    freemarker 自定义freeMarker标签

    FreeMarker使用${...}表达式来插入变量,#{...}用于输出注释,以及、等控制结构进行条件判断和循环。然而,这些默认标签可能无法满足所有复杂的场景,因此自定义标签就显得尤为必要。 自定义FreeMarker标签通常涉及...

    freemarker-ide插件

    6. **模板文档**:插件可能还提供内置的Freemarker文档链接,便于查阅官方文档,学习和理解更多关于Freemarker的用法。 7. **整合开发环境**:由于Freemarker-IDE插件是为Eclipse设计的,所以它能够无缝集成到...

    freemarker Demo 适用于freemarker初学

    这个"freemarker Demo"项目应该包含了基本的模板文件、Struts2配置以及相关的Java代码,通过实际运行和修改这些文件,初学者可以更好地理解Freemarker的工作原理和使用方法。在学习过程中,可以逐步尝试不同的表达式...

    FreeMarker相关学习文档

    以下是对FreeMarker核心概念、用法及常见应用的详细解释。 一、FreeMarker的基本概念 1. 模板:模板是FreeMarker的核心,它是HTML或其他文本文件,其中包含特定的FreeMarker指令和变量,这些元素在运行时会被数据...

    freemarker

    此外,`test`包下的测试类展示了一种使用Freemarker的方式,通过构建数据模型并将其传递给模板,实现了动态内容的生成。 综上所述,Freemarker是一种强大的模板引擎,它能够高效地处理复杂的数据结构,并生成各种...

    freemarker&velocity的使用

    Freemarker和Velocity是两种广泛使用的模板引擎,它们在Java Web开发中扮演着重要的...通过阅读提供的"freemarker语法.doc"文档,你可以深入了解Freemarker的详细语法和使用方法,进一步提升你在这一领域的专业技能。

    freemarker基本语法整理

    在 Struts2 环境中,Freemarker 可以读取后台程序的静态变量和静态方法。例如: ```html ${stack.findValue("@package.ClassName@method")} ${stack.findValue("@package.ClassName@property")} ``` 以上就是 ...

    freemarker-2.3.23jar

    4. **函数和方法**:Freemarker支持自定义函数和方法,可以使用内置的函数库,如字符串操作、数学计算等,也可以扩展自定义函数来满足特定需求。 5. **模板继承和导入**:通过`&lt;#import&gt;`和`&lt;#extends&gt;`,模板可以...

    freemarker编辑插件

    对于初学者来说,使用这样的插件可以更快地掌握Freemarker语言的规则和用法。对于经验丰富的开发者,它可以帮助他们更快地完成日常编码任务,降低因为语法错误导致的问题。总的来说,"freemarker编辑插件"是提高...

    FreeMarker

    FreeMarker的核心概念是模板文件,这是一种特殊的文本文件,其中包含可替换的占位符(称为变量或指令)。当模板与数据模型合并时,这些占位符会被相应的数据值替换,生成最终的输出。FreeMarker支持多种内置指令和...

    freemarker\Freemarker教程_中文版

    - **Bean包裹**:Freemarker提供了一种称为“Bean包裹”的机制,用于处理Java Bean对象,使其更易于在模版中使用。 通过以上知识点的深入理解和实践,开发者可以有效地利用Freemarker来构建高效、可维护的Web应用...

    freemarker入门文档及例子

    本入门文档结合实例,旨在帮助初学者快速理解并掌握Freemarker的基本用法。 一、Freemarker基本概念 1. 模板:Freemarker模板是纯文本文件,其中包含静态文本和控制结构,如条件语句和循环。它们用来生成最终输出。...

    FreeMarker实例教程,手把手教你FreeMarker的方方面面

    ### FreeMarker实例教程知识点详解 ...以上知识点覆盖了FreeMarker的主要方面,通过本教程的学习,读者不仅能够掌握FreeMarker的基本使用方法,还能够深入了解其高级特性,为日后解决复杂的Web开发问题打下坚实的基础。

    FreeMarker模版

    以上介绍的内容,都源自于FreeMarker模板引擎的基本概念、配置和使用方法。在实际开发中,FreeMarker的应用非常广泛,尤其是Web开发领域。通过熟练掌握FreeMarker,开发者可以有效地将页面设计与后端代码分离,提高...

Global site tag (gtag.js) - Google Analytics