assign指令详解 setting指令详解 macro自定义指令详解 java Freemarker中assign指令为该模板页面创建或替换一个顶层变量。 定义 //第一种方式 <#assign name=value [in namespacehash]> 用于指定一个名为name的变量,该变量的值为value,in子句用于将创建的name变量放入namespacehash命名空间中. //第二种方式 <#assign name1=value1 name2=value2 ... nameN=valueN [in namespacehash]> 可以同时创建或替换多个顶层变量。 //第三种方式 <#assign name [in namespacehash]> ...... </#assign> 指将assign指令的内容赋值给name变量,主要用于创建或替换的变量值是一个复杂的表达式的这种情况。 例子 assign替换变量值 <#assign x> <#list ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期天"]as n> ${n} </#list> </#assign> ${x} 代码执行输出: 星期一 星期二 星期三 星期四 星期五 星期六 星期天 assign迭代Map <#-- 这里模拟了一个Map集合,定义了三对键值 --> <#assign h = {"name":"mouse", "price":50, "weight":30}> <#-- h?keys 调用了一个包装类的方法,将Map的key取出赋值 --> <#assign keys = h?keys> <#-- ${h[key]} 访问到了Map中的value属性 --> <#list keys as key>${key} = ${h[key]}; </#list> 执行输出: name = mouse; price = 50; weight = 30; setting指令详解 macro自定义指令详解