恢复混合页面Alfresco Share

时间:2015-11-02 20:58:13

标签: templates alfresco freemarker aikau

我创建了一个新页面Aikau,但我更改了XML文件,标准Share页眉和页脚之间的渲染页面内容消失了。

在这个页面中,我想要查询字符串的参数,所以我写了这段代码:

  

page.get.desc.xml:

<webscript>
    <shortname>My New Page</shortname>
    <url>/hdp/ws/my-new-page</url>
    <authentication>user</authentication>
</webscript>
  

page.get.js:

function main ()
{
    // Get the args
    var fileProp = args["test"];

    model.temp = fileProp;
}

main();
  

page.get.html.ftl:

Test arg: ${temp}

我必须将/hdp/ws/my-new-page放在XML文件中以在此页面中写入FTL文件的内容...但为什么Alfresco模板的页眉和页脚消失了? hdp就是为了这个目的。如果我不在XML上放置这样的URL,则会显示带有模板的页面。

我的代码有什么问题?或者我该如何恢复模板?或者添加页眉和页脚?

编辑:我已经尝试只使用/ my-new-page而不使用/ hdp / ws /但是当我放入/ hdp / ws /时args为null。给我一个提示。

EDIT2:我已经尝试导入alfresco-template.ftl,但我不能。有什么想法吗?

2 个答案:

答案 0 :(得分:3)

您实际上不需要在WebScript描述符中包含“hdp / ws”部分。只需要“/ my-new-page”。 Aikau试图通过提供开箱即用的多个页面来简化Surf页面的创建(而“hdp”页面只是其中之一)。

Aikau使用URI模板映射将单个WebScript与页面匹配,例如在URL中:

/股/页/ HDP / WS /我的新页

share =应用程序上下文 page = Spring MVC请求调度程序

然后将

hdp / ws / my-new-page映射到URI模板:

<uri-template id="share-page">/{pageid}/ws/{webscript}</uri-template>

其中“hdp”是要呈现的页面的ID,“my-new-page”是WebScript URL。 HDP页面使用模板中的“webscript”标记自动创建一个新的Surf Component并将其绑定到WebScript。

但简而言之 - 请勿在Aikau页面的WebScript URL中包含“hdp / ws”。

答案 1 :(得分:1)

你需要在这个javascript强制性的javascript服务器上制作你拥有的东西吗?如果没有,您可以创建一个接收相同参数的javascript客户端(location.search为您提供查询字符串,因此,您可以解析该查询字符串并仅获取&#34; test&#的值34;你想要的)并在FTL文件(客户端javascript)上调用它们。所以,当页面加载时,它不会丢失参数。它不是最好的解决方案,但你可以尝试这个......