Freemarker 使用带有宏的映射值
Freemarker using Map values with macro
我正在使用 Freemarker 宏来管理两个地图的内容。
<#macro MACRO_NAME v>
<#nested v.val, v.msg>
</#macro>
水果图的结构是这样的
Map("fruits" -> Map("val", Map("banana" -> "yellow, "orange" -> "orange"), "msg" -> 空))
而另一张地图,动物,看起来像这样
地图("animals" -> 地图("insects" -> 地图("butterflies" -> 地图("val" -> 地图("Hasora anura" -> "blue", Hasora badra -> "yellow"), "msg" -> null))))
如果 val 为 null 也没关系,因为我检查了我的 Freemarker 代码。如果 fruits.val 为空,则以下代码将输出 false, false(正确行为)
${fruits.val???c}
<@MACRO_NAME fruits; fu, fuMsg>
${fu???c}
</@MACRO_NAME>
${animals.insects.butterflies.val???c}
<@MACRO_NAME animals.insects.butterflies; butterflies, buMsg>
${butterflies???c}
</@MACRO_NAME>
但我的问题是,如果 animals.insects.butterflies.val 为 null,这将输出 false,true 但它也应该是 false,false。
我不知道为什么会这样。
哇,我觉得这真是奇怪的行为
答案是:永远,永远不要像您的地图键那样命名循环变量。
<@MACRO_NAME animals.insects.butterflies; bu, buMsg> 而不是
<@MACRO_NAME animals.insects.butterflies;蝴蝶,buMsg> 会起作用...
这只是一个命名问题。
我正在使用 Freemarker 宏来管理两个地图的内容。
<#macro MACRO_NAME v>
<#nested v.val, v.msg>
</#macro>
水果图的结构是这样的
Map("fruits" -> Map("val", Map("banana" -> "yellow, "orange" -> "orange"), "msg" -> 空))
而另一张地图,动物,看起来像这样
地图("animals" -> 地图("insects" -> 地图("butterflies" -> 地图("val" -> 地图("Hasora anura" -> "blue", Hasora badra -> "yellow"), "msg" -> null))))
如果 val 为 null 也没关系,因为我检查了我的 Freemarker 代码。如果 fruits.val 为空,则以下代码将输出 false, false(正确行为)
${fruits.val???c}
<@MACRO_NAME fruits; fu, fuMsg>
${fu???c}
</@MACRO_NAME>
${animals.insects.butterflies.val???c}
<@MACRO_NAME animals.insects.butterflies; butterflies, buMsg>
${butterflies???c}
</@MACRO_NAME>
但我的问题是,如果 animals.insects.butterflies.val 为 null,这将输出 false,true 但它也应该是 false,false。
我不知道为什么会这样。
哇,我觉得这真是奇怪的行为
答案是:永远,永远不要像您的地图键那样命名循环变量。
<@MACRO_NAME animals.insects.butterflies; bu, buMsg> 而不是 <@MACRO_NAME animals.insects.butterflies;蝴蝶,buMsg> 会起作用...
这只是一个命名问题。