拡張ライブラリ コンポーネントのリモート サービス ( xe:jsonRpcService
) を使用しようとしています。こことここからいくつかのヒントを得ました。基本的に、RPC を使用してドキュメントを保存しようとしています。問題は、ドキュメントは保存されますが、XPage に存在するフィールドは保存されないことです。以下はサンプルの XPage コードです。
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core" xmlns:xe="http://www.ibm.com/xsp/coreex">
<xp:this.data>
<xp:dominoDocument var="document1" formName="Test"></xp:dominoDocument>
</xp:this.data>
<xe:jsonRpcService id="jsonRpcService1" serviceName="service">
<xe:this.methods>
<xe:remoteMethod name="saveDoc">
<xe:this.script><![CDATA[print(">> " + getComponent("inputText1").getValue());
document1.save();
return true;]]></xe:this.script>
</xe:remoteMethod>
</xe:this.methods>
</xe:jsonRpcService>
<xp:br></xp:br>
<xp:inputText id="inputText1" defaultValue="testValue" value="#{document1.testField}"></xp:inputText>
<xp:br></xp:br>
<xp:button value="Save" id="button1">
<xp:eventHandler event="onclick" submit="false">
<xp:this.script><![CDATA[var deferred = service.saveDoc();
deferred.addCallback(
function(result) {
alert(result);
}
);]]></xp:this.script>
</xp:eventHandler>
</xp:button>
</xp:view>
ここで行ったことはservice
、現在のドキュメント ( ) を保存するリモート サービス ( )を作成したことですdocument1
。ドキュメントは保存されますが、値は保存されませんinputText1
。inputText1
また、コンソールに表示される値を印刷しようとすると、保存されません。
これは正しい方法ですか?それとも、ここで何かが欠けていますか。xe:jsonRpcService
また、 の使用が正当化されるシナリオにはどのようなものがありますか?