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;
部分的な更新をトリガーした現在のフィールドの名前と、それが含まれているフォームを見つけたいと考えています。フィールドとフォームの両方の要素は、アプリケーションの内部にあります。それらの名前は、次のように 2 つのイベント パラメータに入れられます。
<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() を呼び出しても何も返されないことです。より正確には、コードの実行が停止します。正確なエラーはまだわかりません (正確ではないことは認めます)。
これらのパラメータを取得するにはどうすればよいですか?
ティア!