2012-04-19 40 views
1

我有一個帶有ExtLib REST控件的自定義控件。我從其他控件創建JSON。如果硬編碼doGet標籤內的所有內容,它工作正常。如何在REST控件中使用compositeData

但是當我嘗試,並通過訪問的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) 

回答

2

應將REST控件視爲獨立組件,因爲可以通過類似於database.nsf/page.xsp/RESTServiceName的URL調用REST服務,所以它不能直接訪問它所在的頁面。

你應該做的,而不是與包括參數傳遞到控制如database.nsf/page.xsp/RESTServiceName?height=20&width=50,然後使用param.get("height")param.get("width")控制中引用它們的URL調用您的REST服務。

另一種選擇可能是將參數放入一個範圍變量並從那裏讀取它們。

0

當數據從靜止調用的對象不調用XPage上的那一刻,讓組件樹未裝載。計算時可以嘗試使用$ {}而不是#{}?

相關問題