【FreeMarker】四种变量的用法
来源:互联网 发布:网络视频监控施工方案 编辑:程序博客网 时间:2024/05/01 08:29
FreeMarker四种变量的用法
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四种变量的用法,本文由huangyineng原创,转载请注明出处
assign
- 它的最简单的语法如下:
<#assign name=value [in namespacehash]>, 这个用法用于指定一个名为name的变量,该变量的值为value, 此外,FreeMarker允许在使用assign指令里增加in子句, in子句用于将创建的name变量放入namespacehash命名空间中.
<#assign name1=value1 name2=value2 ... nameN=valueN [in namespacehash]>
这个语法可以同时创建或替换多个顶层变量,此外,还有一种复杂的用法,
如果需要创建或替换的变量值是一个复杂的表达式,则可以使用如下语法格式:
在这个语法中,是指将assign指令的内容赋值给name变量.如下例子:
<#assign x> <#list ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期天"]as n> ${n} </#list></#assign>${x}上面的代码(${x}等价于<#list ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期天"]as n> ${n} </#list>):
输出如下:
星期一 星期二 星期三 星期四 星期五 星期六 星期天
虽然assign指定了这种复杂变量值的用法,但是我们也不要滥用这种用法
如下例子: <#assign x>Hello ${user}!</#assign>, 以上代码改为如下写法更合适: <#assign x="Hello ${user}!">
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
原文:http://www.656463.com/article/286
- FreeMarker四种变量的用法
- FreeMarker四种变量的用法
- FreeMarker四种变量的用法
- FreeMarker四种变量的用法
- FreeMarker四种变量的用法
- 【FreeMarker】四种变量的用法
- FreeMarker四种变量的用法
- FreeMarker四种变量的用法
- FreeMarker四种变量的用法
- freemarker四种变量
- FreeMarker中的自定义指令和四种变量
- freemarker优点--重点freemarker感叹号的用法
- FreeMarker基础(四) FTL取list的第N个元素 循环用法
- FreeMarker的四种基本数据类型及其序列和哈希表
- FreeMarker的四种基本数据类型及其序列和哈希表
- Freemarker定义宏的用法
- freemarker中三木表达式的用法
- Freemarker定义宏的用法
- iOS开发中两个常见问题的处理
- 解决Eclipse建立Maven项目后无法建立src/main/java资源文件夹的办法
- partioner编程
- Android生成带图片的二维码
- 一个简单的Python3爬虫获取两城市间铁路距离程序
- 【FreeMarker】四种变量的用法
- 破碎的砝码问题
- mini2440系统移植篇之u-boot第二阶段C语言
- 7.12
- 读《从0到1》
- leetcode_Search in Rotated Sorted Array II
- asp.net TextBox OnFocus OnBlur显示与消失
- Android studio导入开源项目
- 8.14