我是freemarker的新手,并希望实现以下问题。
我有一些命名空间变量
例如:
<@myNamespace.varA/>
<@myNamespace.varB/>
<@myNamespace.varC/>
我想将其放入哈希中。我可以想到三种方式,但是我不确定它们是否正确?
方法1
<#assign MyHash = {
"keyA" : <@myNamespace.varA/>,"keyB" : <@myNamespace.varB/>,"keyC" : <@myNamespace.varC/>
}>
方法2
<#assign MyHash = {
"keyA" : ${myNamespace.varA},"keyB" : ${myNamespace.varB},"keyC" : ${myNamespace.varC}
}>
方法3
<#assign varA> <@myNamespace.varA/> </assign>
<#assign varB> <@myNamespace.varB/> </assign>
<#assign varC> <@myNamespace.varC/> </assign>
<#assign MyHash = {
"keyA" : varA,"keyB" : varB,"keyC" : varC
}>
方法4(将varA,varB,varC保留在本地范围内)
<#function getMyHash>
<#local varA> <@myNamespace.varA/> </local>
<#local varB> <@myNamespace.varB/> </local>
<#local varC> <@myNamespace.varC/> </local>
<#return {
"keyA" : varA,"keyC" : varC
}>
</#function>
<#assign MyHash = getMyHash()/>
注意:
命名空间中可能还有其他我不想放入哈希的变量 喜欢
<@myNamespace.varD/>
<@myNamespace.varE/>
... etc