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

freemarker的变量

 
阅读更多
  • 简单变量:它能从模板中的任何位置来访问,或者从使用include指令引入的模板访问。可以使用assign或macro指令来创建或替换这些变量。
  • 局部变量:它们只能被设置在宏定义体内,而且只在宏内可见。一个局部变量的生存周期只是宏的调用过程。可以使用local指令在宏定义体内创建或替换局部变量。
  • 循环变量:循环变量是由指令(如list)自动创建的,而且它们只在指令的开始和结束标记内有效。宏的参数是局部变量而不是循环变量。
<#macro test>
2. ${x} <#-- 这里我们仍然看到的是普通变量 -->
<#local x = "local">
3. ${x} <#-- 现在局部变量隐藏了它 -->
<#list ["loop"] as x>
4. ${x} <#-- 现在循环变量隐藏了局部变量 -->
</#list>
5. ${x} <#-- 现在又可以看到局部变量了 -->
</#macro>

 内部循环变量可以隐藏外部循环变量:

<#list ["loop 1"] as x>
${x}
<#list ["loop 2"] as x>
${x}
<#list ["loop 3"] as x>
${x}
</#list>
${x}
</#list>
${x}
</#list>

 输出为:

loop 1
   loop 2
      loop 3
   loop 2
loop 1

 

 有时会发生一个变量隐藏数据模型中的同名变量,但是如果想访问数据模型中的变量,就可以使用特殊变量globals。例如,假设我们在数据模型中有一个名为user,值为”Big Joe”的变量。

 

<#assign user = "Joe Hider">
${user} <#-- 打印: Joe Hider -->
${.globals.user} <#-- 打印: Big Joe -->

 

 

 

 

 

分享到:
评论

相关推荐

    freemarker替换变量实例

    freemarker替换变量实例

    freemark开发指南详解

    在FreeMarker模板中,每个哈希都有一个唯一的名称,与之关联的每个变量也都有一个唯一的键名。 3. Sequences(序列):序列也是一个容器,用于存储一系列的值,这些值可以按顺序访问。索引值默认从0开始。序列可以...

    spring+hibernate+freemarker+jQuery 登录注册例子

    开发者可以定义变量和逻辑,以便根据用户操作显示不同的界面元素。 jQuery是一个流行的JavaScript库,简化了DOM操作、事件处理、动画效果和Ajax交互。在登录注册系统中,jQuery可以用来处理用户输入验证,如检查...

    Java freemarker demo 【struts + freemarker】 自己修改的一个小例子

    例如,`&lt;#assign user = actionBean.user&gt;`可以将`actionBean`中的`user`属性赋值给FreeMarker变量`user`,然后在模板中可以通过`${user.name}`来显示用户名。 在“Java FreeMarker demo”的压缩包中,可能包含了...

    Spring配置Freemarker视图解析器,配置多个视图解析器

    -- 可以定义全局的Freemarker变量 --&gt; &lt;bean id="viewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver"&gt; ;charset=UTF-8"/&gt; ``` 这段配置定义了一个`...

    FreeMarker_CN.rar

    变量可以是Java对象的属性,也可以是内置的FreeMarker变量。表达式可以进行基本的算术运算、比较和逻辑操作。 4. **控制结构**:FreeMarker支持条件语句(如`&lt;#if&gt;`、`&lt;#else&gt;`、`&lt;#elseif&gt;`)和循环结构(如`...

    ssm集成freemarker1

    -- 添加自定义的FreeMarker变量 --&gt; &lt;bean id="fmHtmlEscape" class="freemarker.template.utility.HtmlEscape" /&gt; &lt;bean id="viewResolver" class="org.springframework.web.servlet.view.freemarker....

    freemarker生成静态网页

    这里的`${title}`、`${user}`和`${date}`是Freemarker变量,它们将在运行时被实际的值替换。 3. **构建数据模型**:在服务器端程序中,创建一个Map或者其他类型的数据结构,包含模板中需要用到的数据。比如: ```...

    freemarker无损生成word.pdf

    总结以上知识点,我们知道使用Freemarker生成Word文档的过程涉及到创建Word模板、替换标记为Freemarker变量、配置Freemarker环境、准备数据模型,以及使用Freemarker模板引擎填充数据生成最终文档。需要注意的是,...

    Freemarker2 整合 Spring3

    -- 可以添加自定义的FreeMarker变量 --&gt; &lt;bean id="viewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver"&gt; ;charset=UTF-8"/&gt; ``` 这里,`freemarkerConfigurer...

    struts2sitemesh-freemarker 源码

    FreeMarker变量通常是从Action传递过来的数据,通过${}表达式在模板中被解析和渲染。 4. **整合与配置**:在源码中,你会看到`struts-plugin.xml`文件,这是Struts2的插件配置,用于集成Sitemesh。同时,Sitemesh的...

    spring boot 和 freemaker 全局变量

    Spring MVC配置Freemarker全局变量,实现应用全路径

    PDF导出方案

    这里`${pdf.root.data.RES_CUSTOMER.CLIENTNAME}`就是FreeMarker变量,它会根据传入的EOS数据总线XML自动填充实际的客户名称。 2. 部署与依赖: 实现这个方案需要三个关键的JAR包,具体部署时,FreeMarker模板...

    freemarker 自定义freeMarker标签

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

    Freemarker 实例,Freemarker 实例

    - **模板(Templates)**:Freemarker的核心是模板文件,它定义了页面的布局和样式,包含变量和控制结构。 - **数据模型(Data Model)**:提供给模板的数据,通常由Java对象构成,包括单个对象、集合、Map等。 - **模板...

    FreeMarker2.3.23官方中文文档

    这些变量和指令是用特定的FreeMarker语法表示的,例如`${expression}`用于输出变量值,`&lt;#if&gt;`、`&lt;#foreach&gt;`等用于控制流程。 1. **变量和表达式**:在FreeMarker模板中,`${}`内的内容是表达式,用于获取Java对象...

    freemarker Demo 适用于freemarker初学

    Freemarker提供了一个调试模式,可以帮助开发者找出模板中的错误,比如未定义的变量、语法错误等。 这个"freemarker Demo"项目应该包含了基本的模板文件、Struts2配置以及相关的Java代码,通过实际运行和修改这些...

    freemarker-2.3.23jar

    这些变量通常由应用程序(如Java后端)提供,Freemarker负责根据模板和数据生成最终的输出。 具体到`2.3.23`这个版本,它可能包括以下特性: 1. **模板设计**:Freemarker支持多种模板设计,如HTML、XML、邮件模板...

    FreeMarker手册-Freemarker 2.3.18

    FreeMarker支持多种指令,如`&lt;#if&gt;`、`&lt;#else&gt;`、`&lt;#else_if&gt;`用于条件判断,`&lt;#foreach&gt;`、`&lt;#break&gt;`、`&lt;#continue&gt;`用于循环控制,`&lt;#assign&gt;`、`&lt;#global&gt;`进行变量定义,`&lt;#function&gt;`自定义函数等。...

    eclipse的freemarker插件

    2. **语法高亮**:提供Freemarker关键词和语法的色彩突出显示,提高代码可读性,便于快速识别模板中的指令和变量。 3. **代码提示和完成**:在编写模板时,插件能提供智能代码补全功能,根据上下文提示可能的指令和...

Global site tag (gtag.js) - Google Analytics