在IBM Lotus Domino Designer中使用Java构建应用程序(9)
时间:2011-01-24 IBM Oscar Hernandez
示例 2:循环通过 Notes 视图
第二个示例中,我们将循环通过 Notes 视图(请参见清单 9)。尽管很简单,该实例在 Java 中编码时却很重要,因为它证实了恰当地使用 recycle 方法可以防止内存异常。
清单 9. 用于循环通过视图的 LotusScript 代码
1 Dim session As New NotesSession
2 Dim database As NotesDatabase
3 Dim view As NotesView
4 Dim document As NotesDocument
5 Set database = session.CurrentDatabase
6 Set view = database.GetView("Enter _View _Name _Here")
7 Set document = view.GetFirstDocument
8 While (Not document Is Nothing)
''Process the document
9 Print document.Created
10 Set document = view.GetNextDocument(document)
11 Wend
以 Java 模板开始,先声明 database、view 和 document 变量(清单 4 中 LotusScript 代码第 1--4 行)。除了这三个变量以外,我们还需要临时的 Document。在 while 循环通过中需要临时 Document 变量来回收当前文档(请参见清单 10)。
清单 10. 声明 database、view 和 document 变量
import lotus.domino. *;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
//(Your code goes here)
Database database; View view;
Document document; Document temp;
} catch(Exception e) {
e.printStackTrace();
}
}
}
继续到第 5--7 行(请参见清单 9),我们来初始化 database、view 和 document 变量,如清单 11 所示。
清单 11. 初始化 database、view 和 document 变量
import lotus.domino. *;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
//(Your code goes here)
Database database;
View view;
Document document;
Document temp;
database = agentContext.getCurrentDatabase();
view = database.getView("Enter_View_Name_Here");
document = view.getFirstDocument();
} catch(Exception e) {
e.printStackTrace();
}
}
}
在IBM Lotus Domino Designer中使用Java构建应用程序(10)
时间:2011-01-24 IBM Oscar Hernandez
在清单 9 的 8 — 11 行,我们循环通过视图中的每个文档。对于这个循环,Java 具有相同的 while 关键字;但是必须使用 != 而不是 Not,并且使用 null 来替代 Nothing(请参见清单 12)。
另外,如果我们要在 Java 中为相同的 Domino 变量多次赋值,则需要在赋新值之前对其调用 recycle ,以防止内存泄露(因此需要 temp 变量)。
清单 12. 循环通过视图中的每个文档
import lotus.domino. *;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
|