将整个Freemarker数据模型公开给JavaScript?
我想知道是否有一种简单的方法可以将Freemarker模板的整个数据模型公开给JavaScript,最好是将其转换为JS对象文本 我知道如何遍历这些键:将整个Freemarker数据模型公开给JavaScript?,javascript,freemarker,Javascript,Freemarker,我想知道是否有一种简单的方法可以将Freemarker模板的整个数据模型公开给JavaScript,最好是将其转换为JS对象文本 我知道如何遍历这些键: <#list .data_model?keys as key> </#list> 假设我可以在模板中构建一个全局JS变量,就像这样?您可以使用FreeMarker遍历整个数据模型,然后为相应的JSON对象生成“源代码”,但您必须处理字符串转义(例如,使用)和潜在的大型(递归)对象图 几年前,我编写了一个通用
<#list .data_model?keys as key>
</#list>
假设我可以在模板中构建一个全局JS变量,就像这样?您可以使用FreeMarker遍历整个数据模型,然后为相应的JSON对象生成“源代码”,但您必须处理字符串转义(例如,使用)和潜在的大型(递归)对象图
几年前,我编写了一个通用数据模型“dumper”,它打印了FreeMarker数据模型的一个漂亮的树表示。这可能不是你想要或需要的,但可能是一种灵感。您可以找到它。您也可以使用Jackson或任何其他json api将对象转换为json,然后将json字符串添加到模型中 使用spring MVC的示例:
@RequestMapping(value = "/test", method = RequestMethod.GET)
public ModelAndView test() throws Exception {
String output = new ObjectMapper().writer().withDefaultPrettyPrinter().writeValueAsString(new HashMap<String, Object>());
Map<String, Object> model = new HashMap<>();
model.put("result", output);
return new ModelAndView("page", "model", model);
}
@RequestMapping(value=“/test”,method=RequestMethod.GET)
public ModelAndView test()引发异常{
字符串输出=new ObjectMapper().writer().withDefaultPrettyPrinter().writeValueAsString(new HashMap());
映射模型=新的HashMap();
模型输出(“结果”,输出);
返回新模型和视图(“页面”、“模型”、“模型”);
}
自由标记
${model.result}为了解决这个问题,我最终选择了另一种方式,但这很有帮助,谢谢!我用Chaquotay的转储文件制作了一个JSON宏。