0

私は問題があります。Java webscript から js webscript を実行する必要があります。私は知っています、どうやってそれをしますか:

req.getRuntime().getContainer().getRegistry().getWebScript("com/home/testJs/testJs.get").execute(req, res)

、しかし、新しい WebScriptRequest オブジェクトを構築する方法は? リクエストパスを書き換えるためにそれを行う必要があります。それは私にとって本当に問題です。ありがとうございました。

4

2 に答える 2

3

一般に、WebScriptRequestURLImplを使用する必要があります。他の詳細がなければ、これ以上深く掘り下げるのは困難です。

とはいえ、問題を解決するために自分自身への HTTP 呼び出しをさらに実行することは、一般的には悪い考えです。基本的には、モジュール化が不十分であるか、コードの再利用が不足していることを示しています。

JS と Java の両方の Web スクリプト フローに共通するコードの一部をActionに移動して、入力パラメーターを再パッケージ化したり、さらに悪いことに HTTP 経由で送信したりすることなく、両方の場所から呼び出すことができるようにします。

于 2012-04-11T16:31:00.190 に答える
0

もちろん、HTTP レイヤーを 2 回通過するのは悪い考えだという skuro の意見は正しいです。

しかし実際には、スクリプト コントローラーと Java メソッドの両方の実行が、Alfresco によってすぐにサポートされます。見苦しいハッキングや、HTTP レイヤー全体を 2 回渡す必要はありません。

これを行うことができます:

スクリプト コードを対応する .js ファイルに配置します。

Java クラスが のサブクラスであることを確認し、カスタム ロジックをDeclarativeWebScriptオーバーライドして配置します。executeImpl

確かに、コントローラーを 2 つ持つのはスタイルが悪いと主張することはできます。:)

于 2012-04-14T08:26:37.667 に答える