我有一个包含Rich Text Field的XPage。在此富文本字段中是一些使用HTML格式化的文本。只要我不做任何改动,就可以很容易地使用
来获取内容docMail.getItemValue("dBody")[0].toString()
该文件的内容如下:
一旦我更改了Text的任何内容,内容将保存为MIME,我的代码不再起作用,因为当我想获得dBody的值时,它是空的。内容如下所示:
所以它现在是MIME部分。但是我如何获得HTML代码?我只想要HTML代码并通过邮件发送。
答案 0 :(得分:2)
在您的情况下:如果您发送整个文档(doc.send),它应该在您将字段从dBody重命名为Body时工作。如果要处理后端,请使用doc.getMimePart进入body字段。或者使用Per的包装器。
答案 1 :(得分:1)
谢谢大家,但我一直在研究一个似乎也能完成工作的解决方案(基于XSnippet emailBean by Tony McGuckin。这是代码:
有一个包含此代码的新Bean:
package de.esg.weiterbildung;
import lotus.domino.Database;
import lotus.domino.NotesException;
import lotus.domino.Session;
import com.ibm.xsp.model.domino.wrapped.DominoDocument;
import com.ibm.xsp.model.domino.wrapped.DominoRichTextItem;
import com.ibm.xsp.model.domino.wrapped.DominoDocument.AttachmentValueHolder;
import de.sit.xpagesutils.*;
public class HTMLHelper {
private boolean debugMode = true;
private String fieldName="dBody";
private DominoDocument document;
public String getFieldName(){
return this.fieldName;
}
public void setFieldName(final String fieldName){
this.fieldName = fieldName;
}
public boolean isDebugMode(){
return this.debugMode;
}
public void setDebugMode(final boolean debugMode){
this.debugMode = debugMode;
}
public DominoDocument getDocument(){
return this.document;
}
public void setDocument(final DominoDocument document){
this.document = document;
}
public String getBodyHTML(String unid)throws NotesException{
String back ="";
if(null != document){
if(this.isDebugMode()){
System.out.println("Started getBodyHTML()");
}
final DominoRichTextItem drti = document.getRichTextItem(fieldName);
if(null != drti){
try {
String html = drti.getHTML();
if(this.isDebugMode()){
System.out.println("Completed getBodyHTML() : " + html);
}
return html;
} catch (Exception e) {
if(this.isDebugMode()){
System.out.println("Failed getBodyHTML() : " + e.getMessage());
}
}
}
}
return back;
}
}
现在我通过调用此代码来获取正文:
helper.setDocument(docMail);
helper.setFieldName("dBody");
var htmlBody:String = helper.getBodyHTML(unid);
到目前为止工作!
答案 2 :(得分:1)
这是我用来访问具有HTML内容的字段的方法,但可以存储为纯文本或富文本字段。我确实将富文本字段设置为将其内容存储为HTML和MIME。
String getRichTextField(Document document, String fieldName) {
MIMEEntity me;
try {
me = document.getMIMEEntity(fieldName);
String text;
if (me != null) {
text = me.getContentAsText();
} else {
@SuppressWarnings("unchecked")
Vector<String> values = document.getItemValue(fieldName);
text = join(values, "\n"); // join is a utility method that joins a vector of strings using the given delimiter
}
return text;
} catch (NotesException e) {
System.err.println("Error accessing field '" + fieldName + "'.");
printStackTrace();
return "error accessing field";
}
}