我想知道如何从Surf中的根对象知道当前的主机名。
我正在写一个为JNLP提供服务的webscript,所以我没有页面上下文,${url.context}
只返回/share
。
我正在寻找如何拥有主机名http://foobar.com
或者是否可以从服务器端获取主机名。
我经历过:http://wiki.alfresco.com/wiki/Surf_Platform_-_Freemarker_Template_and_JavaScript_API#没有成功
答案 0 :(得分:4)
在存储库方面,已知Alfresco和Share的URL。您可以从SysAdminParams获取所有单独的部分,并且可以使用UrlUtils将不同的部分连接在一起,以便您提供完整的网址。
据我所知,这些细节只在Alfresco存储库层上进行,并且永远不会传递给Share。 Share中的所有绝对URL似乎都在Repo中生成并通过
发送然后,一个选项是您将webcript更改为repo webscript而不是共享webcript。这将使您可以访问适当的bean。 Share将为您代理Repo网页脚本,因此您仍然可以在登录用户的Share中直接访问它。您需要一个类似/share/proxy/alfresco/my/web/script
的网址来访问它们。
否则,创建一个新的repo webscript,公开SysAdminParams和Share URL的有用位,并让你的共享webscript获取它(可能是缓存)。有许多例子也可以使用。
答案 1 :(得分:1)
您是否尝试过${url.serverPath}
否则您可以使用默认的alfresco-global.properties,如
share.context=share
share.host=foobar.com
share.port=80
share.protocol=http
可以在任何地方注入这些属性,请查看此处:Accessing values from Alfresco's alfresco-global.properties file
您唯一需要注意的是,这些属性与存储库相关。 所以你可以写一个repo webscript,它将把所有的道具分享给你。
由于您使用的是Share,因此可以轻松使用客户端JavaScript来确定主机;)。