Freemarker - 将一个对象打印到另一个对象中
Freemarker - print an object into another object
我目前正在使用 FreeMarker Java 模板引擎 (.ftl)
我有一个配置文件对象,我想打印到另一个 ftl 文件中 (OutputScript.ftl)
这是我的 config.ftl
<#assign config = {
"hp": {
"product" : {
"title": {
"top": "true",
"bottom": "false"
}
}
}
} />
这是我的 OutputScript.ftl
<script>
window.object = {
config : {
// write the config object inside
}
}
</script>
我已经设置了一个页面 (page.ftl),我在其中调用了两个文件
<#import "/config/config.ftl" as config />
<#attempt><#include "XXX/OutputScript.ftl" /><#recover><!--Error: module OutputScript.ftl ${.error}--></#attempt>
目前,我无法打印出来。
我试过这样的东西但没有任何运气
<#if config.config.hp??>
<#list config.config.hp as page>
${key}: ${page[key]}
</#list>
</#if>
另外,我们可以让它动态化吗?(如果我的配置文件有更多的缩进,它还能工作吗?)
谢谢
您不能直接使用 ${}
打印地图(“散列”),只能打印字符串、数字、date/time 或布尔值。所以如果要生成JSON,就得写宏,递归遍历打印数据结构
为了使用 ?eval_json
我已经将 Freemarker 更新到最新版本
<#assign config = '{
"test" :"testValue",
"hp": {
"product" : {
"title": {
"top": {
"header": {
"big": "true",
"test" : 14
},
"header2": {
"big2": "true2"
},
"header3" : "true3"
}
}
}
}
}'>
<#assign configRedux = config?eval_json>
我目前正在使用 FreeMarker Java 模板引擎 (.ftl)
我有一个配置文件对象,我想打印到另一个 ftl 文件中 (OutputScript.ftl)
这是我的 config.ftl
<#assign config = {
"hp": {
"product" : {
"title": {
"top": "true",
"bottom": "false"
}
}
}
} />
这是我的 OutputScript.ftl
<script>
window.object = {
config : {
// write the config object inside
}
}
</script>
我已经设置了一个页面 (page.ftl),我在其中调用了两个文件
<#import "/config/config.ftl" as config />
<#attempt><#include "XXX/OutputScript.ftl" /><#recover><!--Error: module OutputScript.ftl ${.error}--></#attempt>
目前,我无法打印出来。 我试过这样的东西但没有任何运气
<#if config.config.hp??>
<#list config.config.hp as page>
${key}: ${page[key]}
</#list>
</#if>
另外,我们可以让它动态化吗?(如果我的配置文件有更多的缩进,它还能工作吗?)
谢谢
您不能直接使用 ${}
打印地图(“散列”),只能打印字符串、数字、date/time 或布尔值。所以如果要生成JSON,就得写宏,递归遍历打印数据结构
为了使用 ?eval_json
我已经将 Freemarker 更新到最新版本<#assign config = '{
"test" :"testValue",
"hp": {
"product" : {
"title": {
"top": {
"header": {
"big": "true",
"test" : 14
},
"header2": {
"big2": "true2"
},
"header3" : "true3"
}
}
}
}
}'>
<#assign configRedux = config?eval_json>