xp:dataTable のデータソースとして xe:objectData を使用しています。objectData1 は、いくつかの Java コードを使用して、ビューからキー ( username ) に一致するすべてのドキュメントを取得します。Java コードは次のようになります。
package com.isatweb.cois;
import static com.ibm.xsp.extlib.util.ExtLibUtil.getCurrentDatabase;
import static com.ibm.xsp.extlib.util.ExtLibUtil.getCurrentSession;
import java.io.Serializable;
import lotus.domino.Database;
import lotus.domino.Name;
import lotus.domino.Session;
import lotus.domino.View;
import lotus.domino.ViewEntryCollection;
public class ObjectDataVisits implements Serializable {
private static final long serialVersionUID = 1L;
ViewEntryCollection vec = null;
public ObjectDataVisits(){
try {
this.update();
} catch (Exception e) {
System.out.print(e);
}
}
public void update() {
try {
Database _db = getCurrentDatabase();
Session _session = getCurrentSession();
Name nam = _session.createName(_session.getEffectiveUserName());
String username = nam.getAbbreviated().replace(" ", "#").replace("/", "#").toUpperCase();
View view = _db.getView("vw_visit_open");
this.vec = view.getAllEntriesByKey(username);
} catch (Exception e) {
System.out.print(e);
}
}
public ViewEntryCollection getVisits(){
return this.vec;
}
}
XPage には次のコードがあります
ページを最初にロードすると、データがビューから読み取られ、dataTable に一致するすべてのドキュメントの NoteID が表示されます。ボタンを使用してページを更新すると、「オブジェクトが削除されたか、リサイクルされました」というエラーが表示されます。誰でもできますか?私が間違っていることを教えてください。(そしておそらく、それを正しく行う方法)