搜索 XPage 事件参数

Searching XPages event parameters

我从 XPages 社区的各个部分组装了这段代码,您可能认识一些:

var submitId= param.get( '$$xspsubmitid');
var component:com.ibm.xsp.component.xp.XspEventHandler= PageData.getComponentByClientId(submitId, view);
dprint("id= " + component.getClass().toString())
var params= component.getParameters();
for(var x:com.ibm.xsp.complex.Parameter in params) {
    dprint(x);
    dprint(x.getName());
    dprint(x.getValue());
}

PageData 是一个托管 bean,getComponentByClientId 完全按照它说的去做;它的代码,为了完整起见:

public UIComponent getComponentByClientId(String id, UIComponent root) {
    UIComponent component= new XspQuery().byClientId(id, root);
    return component;

}

至于 XspQuery:

package org.openntf.xsp.extlib.query;

我想查找触发部分更新的当前字段的名称及其所在的表单。元素、字段和表单都在我的应用程序内部。他们的名字放在两个事件参数中,像这样:

<xp:this.parameters>
    <xp:parameter name="formName" value="#{javascript:compositeData.formName}"></xp:parameter>
    <xp:parameter name="fieldName" value="#{javascript:compositeData.fieldName}"></xp:parameter>
</xp:this.parameters>

问题是:当我将此代码放入 afterRestoreView、beforeRenderResponse 或 afterRenderResponse 的页面事件之一时,参数的名称被正确打印,但对 getValue() 的调用从来没有 returns 任何东西!更准确地说:代码的执行停止了,我还不知道确切的错误(我承认这并不准确)。

如何获取这些参数?

TIA!

查看 Mastering XPages 中的代码,在 eventHandler 的 SSJS 代码中访问 eventHandler 参数值的方法只是将 name 属性 作为变量引用。例如print(formName + ": " + fieldName)