小编New*_*wbs的帖子

如何将JSON对象添加到Java中的作用域变量?

我在applicationScope,sessionScope和viewScope中使用了许多JSON对象来跟踪相关数据.在SSJS中编写和阅读这些非常简单:`

//Create a app scope variable
applicationScope.put("myvarname", {p1:"part 1", p2:"part2"});

// read and use the app scope variable ...
var myvar = applicationScope.get("myvarname");
//Work with parts as myvar.p1, myvar.p2, etc...
Run Code Online (Sandbox Code Playgroud)

在我编写的Java代码中,我学会了读取这些使用com.ibm.jscript.std.ObjectObject包使用SSJS编写的变量,代码如下:

ObjectObject myvar = (ObjectObject) ExtLibUtil
        .getApplicationScope().get(dbkey);
FBSValue localFBS = myvar.get("p1");
String myp1 = localFBS.stringValue();
localFBS = myvar.get("p2");
String myp2 = localFBS.stringValue();
Run Code Online (Sandbox Code Playgroud)

当然,现在,我想使用Java Bean编写一个新条目,然后SSJS和其他Java Bean可以以相同的方式读取它.我设法使用Map和Hashtable写入作用域,但是在尝试使用ObjectObject读取时会破坏逻辑.

那么,我如何使用ObjectObject和/或FBSValue包在范围内构建新条目?我找不到如何创建一个新的FBSValue,然后可以将其添加到ObjectObject.我相信像我这样的Newbs错过了一件简单的事情.

/ Newbs

xpages

7
推荐指数
1
解决办法
2084
查看次数

在Java Bean中回收Domino对象的最佳方法是什么?

我使用一个函数来访问配置文档:

private Document lookupDoc(String key1) {
    try {
        Session sess = ExtLibUtil.getCurrentSession();
        Database wDb = sess.getDatabase(sess.getServerName(), this.dbname1);
        View wView = wDb.getView(this.viewname1);
        Document wDoc = wView.getDocumentByKey(key1, true);
        this.debug("Got a doc for key: [" + key1 + "]");
        return wDoc;
    } catch (NotesException ne) {
        if (this.DispLookupErrors)
            ne.printStackTrace();
        this.lastErrorMsg = ne.text;
        this.debug(this.lastErrorMsg, "error");
    }
    return null;
}
Run Code Online (Sandbox Code Playgroud)

在另一种方法中,我使用此函数来获取文档:

Document wDoc = this.lookupDoc(key1);

if (wdoc != null) {
    // do things with the document
    wdoc.recycle();
}
Run Code Online (Sandbox Code Playgroud)

当我回收Document对象时,我应该回收数据库和View对象吗?或者应该在函数返回Document之前回收它们?

xpages

7
推荐指数
1
解决办法
3119
查看次数

标签 统计

xpages ×2