如何在domino中使用Ajax,在使用javascript上和其他语言使用Ajax没有什么区别,在这里主要说说在Server上怎么来生成我们需要的xml.
我们可以把domino的Lotusscript代理看成java的Servlet,在这个代理中生成就可以
Dim s As New NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
Dim view As NotesView
Set db = s.currentDatabase
Set view = db.GetView( "XML" )
Set doc = view.GetFirstDocument
Print "Content-type: text/xml"
Print | <?xml version="1.0" encoding="GB2312"?> | '采用GB2312编码,可以传递中文,需要用XML结点操作,如果直接用responseText来查看整个XML文档,中文显示会乱码(XML结点操作见上面的例子)
Print "<BOOKCATALOG>"
'BOOKCATALOG is the root element of the XML document.
While Not ( doc Is Nothing )
'Loop as long as there are document objects available.
Print "<BOOK>"
'Send the parent element for each book document.
Print "<bookTitle>"+doc.bookTitle(0)+"</bookTitle>"
Print "<bookAuthor>"+doc.bookAuthor(0)+"</bookAuthor>"
Print "<bookPrice>"+doc.bookDiscountPrice(0)+"</bookPrice>"
Print "<bookCategory>"+doc.bookCategory(0)+"</bookCategory>"
Print "</BOOK>"
'Close the book element tag.
Set doc = view.GetNextDocument( doc )
'Get the next document in the view.
Wend
Print "</BOOKCATALOG>"
采用代理方式生成比较灵活,可以按照我们需要的方式生成xml,除此外domino还提供了其他的生成方式ReadViewEntries url命令方式.
语法
?ReadViewEntries
?ReadViewEntries
?ReadViewEntries
$defaultview?ReadViewEntries
参数
ReadViewEntries 的可选参数
追加可选参数来细化 URL。根据所需结果组合以下参数。
Collapse = n
这里:
n 是层次视图中以折叠格式显示的行数。不要将此参数与 ExpandView 或 CollapseView 参数组合。
CollapseView
显示折叠格式的视图
Count = n
这里:
n 是所显示的行数
Expand = n
这里:
n 是在层次视图中以展开格式显示的行数。不要将此参数与 ExpandView 或 CollapseView 参数组合。
ExpandView
以展开的格式显示视图
PreFormat
导致服务器上所有的数据类型被转换为文本。文本列表、数字、日期和数字列表在发送之前被转换为文本。服务器地区设置被用于所有格式。如果没有该参数,则 XML 输出流将包含结构化的、地区不确定格式的信息。
RestrictToCategory = category
为“显示单个分类”对象设置类别。
这里:
category 是要在视图中显示的类别
Start = n
这里:
n 是显示视图时的起始行号。在层次视图中行号可以包括子索引(例如:Start=3.5.1 意味着视图将从第三个主题的子标题 5 的文档 1 开始显示)。
StartKey = string
这里:
string 是视图中文档的关键字。视图显示时出现此文档。
采用这种方式可以直接得到domino生成的xml,而且该xml包含的信息比较多,中文也能正确得到(缺点:信息多,导致了无用的信息也多,而实际的server到browse传输中应该让数据尽量的少,因此要综合考虑视图的设计)