在 XPages 中存储和读取 Java Beans 数据的最佳实践

问题描述 投票:0回答:0

我有以下 java bean 代码,它在 sessionScope 的数组列表中存储选项卡列表,因此我不必为每个请求查找它。

public class BeanMethods {

private static final long serialVersionUID = 1L;
public Database db;
public ArrayList<String> userTabs;

public BeanMethods() {
    db = ExtLibUtil.getCurrentDatabase();
    userTabs = new ArrayList<String>();
}

public ArrayList<String> getUserTabs(String uid) throws NotesException {
    if (userTabs.isEmpty()) {
        userTabs = getUserTabs2(uid);
    }
    return userTabs;
}

public ArrayList<String> getUserTabs2(String uid) throws NotesException {

    db = ExtLibUtil.getCurrentDatabase();
    String key = "TAB_UID_" + uid;
    DocumentCollection dc = db.getView("LookupKey").getAllDocumentsByKey(key, true);

    Document d = dc.getFirstDocument();
    while (d != null) {
        String tabTitle = d.getItemValueString("Title");
        userTabs.add(tabTitle + "|" + d.getItemValueString("UniqueId"));
        d = dc.getNextDocument(d);
    }
    return userTabs;
}

}

我对此有一些疑问

  1. 如何在运行时更新用户选项卡属性?
  2. 我注意到在某些或所有情况下,构造函数中设置的 db 变量没有得到维护,看起来我需要在每个方法中设置它?我在这里错过了什么吗?
  3. 有没有更好的方法来编写这段代码?
java xpages javabeans managed-bean
© www.soinside.com 2019 - 2024. All rights reserved.