Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将整个Freemarker数据模型公开给JavaScript?_Javascript_Freemarker - Fatal编程技术网

将整个Freemarker数据模型公开给JavaScript?

将整个Freemarker数据模型公开给JavaScript?,javascript,freemarker,Javascript,Freemarker,我想知道是否有一种简单的方法可以将Freemarker模板的整个数据模型公开给JavaScript,最好是将其转换为JS对象文本 我知道如何遍历这些键: <#list .data_model?keys as key> </#list> 假设我可以在模板中构建一个全局JS变量,就像这样?您可以使用FreeMarker遍历整个数据模型,然后为相应的JSON对象生成“源代码”,但您必须处理字符串转义(例如,使用)和潜在的大型(递归)对象图 几年前,我编写了一个通用

我想知道是否有一种简单的方法可以将Freemarker模板的整个数据模型公开给JavaScript,最好是将其转换为JS对象文本

我知道如何遍历这些键:

  <#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宏。