`
guzizai2007
  • 浏览: 358799 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

FreeMarker四种变量的用法

 
阅读更多

转自: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

李四

 

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    freemarker语法完整版.doc

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

    freemarker 自定义freeMarker标签

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

    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编辑插件

    对于初学者来说,使用这样的插件可以更快地掌握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是一个强大的模板引擎,常用于Web应用中的视图层渲染,比如Spring MVC框架就广泛使用了Freemarker作为其模板技术。本教程将基于提供的"freemarker编辑器"来详细介绍如何配置和使用Freemarker,以及它在...

    FreeMarker模版

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

    freemarker-2.3.28.jar

    1. **模板语言FTL**: Freemarker使用的模板语言叫做FreeMarker Template Language (FTL),它是一种声明式的、非过程式的语言。FTL文件包含了一系列的指令和表达式,用于生成最终输出。例如,`&lt;#if&gt;`、`&lt;#foreach&gt;`、...

Global site tag (gtag.js) - Google Analytics