【发布时间】:2018-09-18 14:08:52
【问题描述】:
XPages Dojo Data Grid and Custom REST Service
*** 注意:我的是一个 XPINC 应用程序! 我已经设法使上述方法正常工作,但我想将参数传递给 Rest Service 以构建更好的返回集。
在上面的示例中,脚本如下所示:
<script>
var jsonStore = new dojo.store.JsonRest(
{target:"CURRENT_PAGE_NAME_HERE.xsp/gridData"}
);
var dataStore = dojo.data.ObjectStore({objectStore: jsonStore});
</script>
但是,我想做这样的事情:
<script>
var jsonStore = new dojo.store.JsonRest(
{target:"CURRENT_PAGE_NAME_HERE.xsp/gridData?OpenXpage¶1=Value1¶2=Value2"}
);
var dataStore = dojo.data.ObjectStore({objectStore: jsonStore});
</script>
我尝试了很多方法,但都没有成功。
方法 1 - 使用 Request/View/SessionScope 变量 在“CURRENT_PAGE_NAME_HERE.xsp”上,我添加了一个“xp:this.beforePageLoad”事件来创建 Scope 变量来保存从 URL 的 paramValues 获取的 para1 和 para2。
我认为一个简单的 requestScope 会存储它们,这样我就可以在调用“CURRENT_PAGE_NAME_HERE.xsp/gridData”时获取它们。但是,在页面的“onClientLoad”事件中调用了 Rest Service,此时 Scope 变量似乎不可用。
方法 2 - 内联 Javascript 我也试过 "${javascript:viewScope.para1;}" 来传递它:
<script>
var jsonStore = new dojo.store.JsonRest(
{target:"CURRENT_PAGE_NAME_HERE.xsp/gridData?OpenXpage¶1=${javascript:viewScope.para1;}¶2=${javascript:viewScope.para2;}"}
);
var dataStore = dojo.data.ObjectStore({objectStore: jsonStore});
</script>
这不起作用。
方法 3 - 硬编码 我已经硬编码了这些值。
<script>
var jsonStore = new dojo.store.JsonRest(
{target:"CURRENT_PAGE_NAME_HERE.xsp/gridData?OpenXpage¶1=Apples¶2=Oringes"}
);
var dataStore = dojo.data.ObjectStore({objectStore: jsonStore});
</script>
这行得通!但是,仅适用于苹果和橙子
我开始考虑使用环境变量来传递值,但这似乎更像是一种破解而不是解决方案。
如有任何帮助或指导,我们将不胜感激。
【问题讨论】: