0

xpages を送信したときに計算フィールドの現在の値が返されなかったのはなぜですか?

var newHTTPPassword = this.userProfileXspDoc.getValue("HTTPPassword");

ここで、HTTPpassword は数式を含む計算フィールドです

@Password(HTTPPassword_1).

xpages は両方で計算されます。

4

1 に答える 1

1

計算フィールドは Notes フォームのみにあります。XPage を送信すると、送信された値は送信イベントで使用できますが、Notes フォームを使用する「computeWithForm」で行われる変更は使用できません。フォームに多数の @Logic を含む既存のアプリケーションを再適合させない限り、フォームでの計算は避けようとします。変換には session.evaluate を使用します (これにより、2 つのフィールドを持つ必要がなくなります)。提案どおり .getSubmittedValue() が機能する可能性があります。ただし、入力フィールド HTTPassword_1 を viewScope.password にビン化し、querySave で次のようにします。

if (viewScope.password) { // If it isn't empty
    var realPassword = session.evaluate("@Password(\""+viewScope.password+"\")");
    userProfileXspDoc.setValue("HTTPPassword",realPassword);
    // Clear the scope for next round?
    viewScope.password = null;
}

これにより、ドキュメントから HTTPassword_1 をクリアする必要がなくなります。

それがどうなるか教えてください

于 2013-09-28T04:42:31.990 に答える