【问题标题】:Spring surf javascript backed webscript and JSON objectsSpring surf javascript 支持的 webscript 和 JSON 对象
【发布时间】:2012-07-18 14:59:42
【问题描述】:

我真的需要帮助。在过去的 2 或 3 小时内,我试图简单地在 freemarker 中列出一个带有 javascript 支持的 webscript 的 JSON 对象,但没有运气。

让我们将我的脚本命名为 x,所以:

x.get.js

function main(){
    //model.data = {'name':'Test Object','size':100};
    model.data={
        "2012": {
            "A": {
                "a": "on",
                "b": "off",
                "list": [
                    1,
                    2,
                    3,
                    4
                ]
            }
        },
        "2013": {
            "B": {
                "c": "on",
                "d": "off"
            }
        }
    };

   logger.log(jsonUtils.toJSONString(model.data));
}

main();

x.get.html.ftl

<#assign keys = data?keys>
<#list keys as tag>
   ${jsonUtils.encodeJSONString(tag)}<#if tag_has_next>,</#if>
</#list>

当我尝试仅使用第一个 model.data(已注释掉)时,它工作正常,并且记录器写出完整的 JSON,我在呈现的 HTML 中得到“名称、大小”。

但是,当我这样尝试时,我在呈现的 HTML 中什么也得不到,并且记录器会说一些奇怪的事情:

 {"2012":"org.mozilla.javascript.UniqueTag@1a31e0a: NOT_FOUND","2013":"org.mozilla.javascript.UniqueTag@1a31e0a: NOT_FOUND"}

那又怎样?这个 JSON 也是有效的,所以我错过了一些对话或神秘的功能或什么?

感谢您的帮助

J.

【问题讨论】:

  • 好的,我解决了!记录器还为以下 json 记录奇怪的事情:model.data = {'123':'Test Object','size':100}; 确切地说:{"123":"org.mozilla.javascript.UniqueTag@1a31e0a: NOT_FOUND", 'size' : 100} 当控制器脚本被执行时,如果你的字符串中有一个小数(你希望被解释为一个字符串,因为这是一个有效的json!),如“123”,将被解析为十进制!我不知道为什么。我正在寻找答案。 所以不要在字符串字面量中使用整数,作为 JSON 标识符,在玩网络脚本时。

标签: json spring alfresco web-scripting alfresco-share


【解决方案1】:

通常你应该使用 js 中的普通对象/值填充你的模型,并在你的 ftl 模板 x.get.json.ftl 中生成 json

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-07
    • 1970-01-01
    • 2011-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多