2
XPages應用程序使用包含綁定到RichText編輯器和文件上傳/下載控件的兩個字段的「模板」文檔。 常規文檔最初鏈接到模板文檔,其中一個數據源用於當前文檔的常用字段(標題,類別,讀者/作者...),第二個數據源顯示只讀RT +模板附件。從文檔複製MIME文檔到文檔
當用戶決定更改RT /附件時,他將文檔從模板中取消鏈接 - 通過將RT +附件從模板複製到當前文檔。
問題:標準的Java代碼片段的RT副本(和附件太)是:
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
這總是適用於身體領域(雖然它改變格式化位),但很少適用於附件。 Notes客戶機中模板文檔的重新保存將RT從MIME轉換爲本地RT格式,代碼正常工作。
不工作方式是:用箭頭線
- 例外
java.lang.ClassCastException: lotus.domino.local.Item incompatible with lotus.domino.RichTextItem
。 - 丟失文件字段(正文創建正確壽) 對於一些附件代碼似乎工作(文本文件),對於更大或二進制它失敗(23k .doc,3M .pdf)。
以上代碼被稱爲代理的LotusScript替代方法也沒有幫助。 數據源屬性computeWithForm未按用途使用。
問題:在文檔之間複製MIME附件的正確方法是什麼?
這應該避開例外:RichTextItem rt = null; Object obj = docTemplate.getFirstItem(「Files」); if(obj instanceof RichTextItem){rt =(RichTextItem)obj} - 感謝http://lekkimworld.com/2006/04/13/java_in_notes_domino_explained_casting_101.html。 – pipalia
您是否嘗試過getContentAsBytes:http://www-10.lotus.com/ldd/ddwiki.nsf/dx/NotesMIMEEntity_sample_JavaScript_code_for_XPages#getContentAsBytes – pipalia