FreeMarker

FreeMarker学习之assign指令

2019-01-15  本文已影响8人  邪人君子

assign指令

使用方法

<#assign name1=value1 name2=value2 ... nameN=valueN>
或
<#assign same as above... in namespacehash>
或
<#assign name>
  capture this
</#assign>
或
<#assign name in namespacehash>
  capture this
</#assign>

举例

<#assign name="李四">
姓名:${name}
<#assign info={"name":"张三","address":"上海"}>
姓名:${info.name}
地址:${info.address}

描述

使用该指令你可以创建一个新的变量, 或者替换一个已经存在的变量。
比如:变量 seq 存储一个序列:

<#assign seq = ["foo", "bar", "baz"]>

比如:变量 x 中存储增长的数字:

<#assign x++>

可以使用一个 assign 标记来定义定义多个变量

<#assign 
seq = ["foo", "bar", "baz"]
  x++
>

assign 的极端使用是当它捕捉它的开始标记和结束标记中间生成的输出时。 也就是说,在标记之间打印的东西将不会在页面上显示, 但是会存储在变量中。比如:

<#macro myMacro>foo</#macro>
<#assign x>
  <#list 1..3 as n>
    ${n} <@myMacro />
  </#list>
</#assign>
Number of words: ${x?word_list?size}
${x}

将会输出:
Number of words: 6
    1 foo
    2 foo
    3 foo

不可以使用它来往字符串中插入变量:

<#assign x>Hello ${user}!</#assign> <#-- 错误 -->

你可以这么来写:

<#assign x="Hello ${user}!">
上一篇下一篇

猜你喜欢

热点阅读