1

ExtLib REST コントロールを含むカスタム コントロールがあります。残りのコントロールから JSON を作成しています。doGet タグ内にすべてをハードコーディングすると、正常に動作します。

しかし、do get で compositeData を介してカスタム プロパティにアクセスしようとすると、エラーが発生します。

com.ibm.domino.services.ServiceException: Error while rendering service

Caused by: com.ibm.xsp.exception.EvaluationExceptionEx: Error while executing JavaScript action expression
    at com.ibm.xsp.binding.javascript.JavaScriptMethodBinding.invoke(JavaScriptMethodBinding.java:126)
    at com.ibm.xsp.extlib.component.rest.CustomService$ScriptServiceEngine.renderServiceGet(CustomService.java:311)
    at com.ibm.xsp.extlib.component.rest.CustomService$ScriptServiceEngine.renderService(CustomService.java:262)
    ... 20 more
Caused by: com.ibm.jscript.InterpretException: Script interpreter error, line=11, col=14: [ReferenceError] 'compositeData' not found

コンポジットを使用して JSON オブジェクトを作成する方法はありますか?

次のようなオブジェクトを作成しようとしています。

var object = {};
object.height = compositeData.height
return toJson(object)
4

2 に答える 2

2

のような URL を介して REST サービスを呼び出すことができるため、REST コントロールは、それが存在するページに直接アクセスできない独立したコンポーネントと見なす必要がありますdatabase.nsf/page.xsp/RESTServiceName

代わりにすべきことは、 などのコントロールに渡すパラメーターを含む URL を使用して REST サービスを呼び出し、およびdatabase.nsf/page.xsp/RESTServiceName?height=20&width=50を使用してコントロール内でそれらを参照することです。param.get("height")param.get("width")

別のオプションとして、パラメーターをスコープ変数に入れて、そこから読み取ることができます。

于 2012-04-19T01:25:55.720 に答える
0

Rest オブジェクトからデータが呼び出されるとき、その時点では XPage が呼び出されないため、コンポーネント ツリーはロードされません。計算時に #{} の代わりに ${} を使用してみてください。

于 2012-04-19T01:22:36.023 に答える