XPages应用程序使用“模板”文档,其中包含两个绑定到RichText编辑器和文件上载/下载控件的字段。 常规文档最初链接到模板文档,其中一个数据源用于当前文档的公共字段(标题,类别,读者/作者...),第二个数据源显示来自模板的只读RT +附件。
当用户决定更改RT /附件时,他将文档与模板取消链接 - 将RT +附件从模板复制到当前文档。
问题: RT副本(以及附件)的标准Java代码段是:
session.setConvertMime(true);
RichTextItem rti = (RichTextItem)docTemplate.getFirstItem("Body");
rti.copyItemToDocument(docCurrent, "Body");
rti = (RichTextItem)docTemplate.getFirstItem("Files"); <====
rti.copyItemToDocument(docCurrent, "Files");
docCurrent.save(); //saves in RT format, next save via XPage converts to MIME
这总是适用于Body字段(虽然它稍微改变了格式),但它很少适用于附件。 在Notes客户端中重新保存模板文档会将RT从MIME转换为本机RT格式,代码可以正常工作。
不工作意味着:
java.lang.ClassCastException: lotus.domino.local.Item incompatible with lotus.domino.RichTextItem
与箭头对齐。上述代码的LotusScript替代方法称为代理也无济于事。 数据源属性computeWithForm未按用途使用。
问题:在文档之间复制MIME附件的正确方法是什么?
答案 0 :(得分:0)
最快捷的方法是使用Document.copyAllItems(Document doc,boolean replace),而不是删除不必要的内容。