2

Surfのルートオブジェクトから現在のホスト名を知る方法を知りたいのですが。

JNLPを提供するWebスクリプトを作成しているので、ページコンテキストがなく、を${url.context}返すだけ/shareです。

ホスト名を取得する方法、http://foobar.comまたはサーバー側からこれが可能かどうかを調べています。

私は経験しました:http ://wiki.alfresco.com/wiki/Surf_Platform _-_ Freemarker_Template_and_JavaScript_API #成功しませんでした

4

2 に答える 2

4

リポジトリ側では、AlfrescoとShareのURLがわかっています。SysAdminParamsからすべての個別のパーツを取得でき、 UrlUtilsを使用してさまざまなパーツを結合し、完全なURLを提供できます。

ただし、私が知る限り、これらの詳細はAlfrescoリポジトリ層でのみ保持され、Shareに渡されることはありません。シェア内のすべての絶対URLはリポジトリで生成され、送信されているようです

1つのオプションは、Webスクリプトを共有WebスクリプトではなくリポジトリWebスクリプトに変更することです。これにより、適切なBeanにアクセスできるようになります。ShareはRepoWebスクリプトをプロキシするため、ログインしたユーザーとしてShareから直接アクセスできます。それらにアクセスするのに少し似たURLが必要になります/share/proxy/alfresco/my/web/script

それ以外の場合は、SysAdminParamsと共有URLの有用な部分を公開する新しいリポジトリWebスクリプトを作成し、共有Webスクリプトにそれをフェッチさせます(キャッシュを使用する可能性があります)。その例もたくさんあります。

于 2012-11-21T13:51:27.130 に答える
1

やってみました${url.serverPath}

または、次のようなデフォルトのalfresco-global.propertiesを使用できます

share.context=share
share.host=foobar.com
share.port=80
share.protocol=http

これらのプロパティは、どこにでも挿入できます。こちらをご覧ください:Alfrescoのalfresco-global.propertiesファイルから値にアクセスする

注意する必要があるのは、これらのプロパティがリポジトリに関連していることだけです。したがって、共有するすべての小道具を提供するリポジトリWebスクリプトを作成できます。

また、Shareを使用しているため、クライアント側のJavaScriptを使用してホストを簡単に判別できます;)。

于 2012-11-21T12:22:46.377 に答える