如何在freemarker中创建到名称空间变量的字符串哈希? 例如:方法1 方法2 方法3 方法4(将varA,varB,varC保留在本地范围内)注意:

我是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
aidetianshi123456 回答:如何在freemarker中创建到名称空间变量的字符串哈希? 例如:方法1 方法2 方法3 方法4(将varA,varB,varC保留在本地范围内)注意:

如果我很了解你想要什么,就像这样:

<#function getMyHash>
  <#return {
    "keyA" : myNamespace.varA,"keyB" : myNamespace.varB,"keyC" : myNamespace.varC
  }>
</#function>

<@.../>用于调用宏(或其他用户定义的指令),因此不相关。除非myNamespace.varA等是宏,并且您想将它们的输出放入该哈希中,但是我想事实并非如此。

本文链接:https://www.f2er.com/3152594.html

大家都在问