任何人都可以提供如何使用託管bean執行基本CRUD操作以及後端RichText字段的示例,因此最終結果與使用文檔數據源在標準的XPage開發中。在XPages中對Java受管bean使用RTF內容
下面的代碼顯然是錯誤的或不完整的,但我找不到任何文檔來進一步。
我知道我還沒有回收任何東西。
非常感謝。
public class RichTextTest implements Serializable {
private static final long serialVersionUID = 1L;
private String plainItem;
private RichTextItem richItem;
private String unid;
public RichTextTest()throws NotesException {
String docID = ExtLibUtil.readParameter(FacesContext.getCurrentInstance(),"key");
if (StringUtil.isNotEmpty(docID)){load(docID);}}
public void load(String ID) throws NotesException{
Document doc = null;
setUnid(ID);
doc = ExtLibUtil.getCurrentDatabase().getDocumentByUNID(ID);
setPlainItem(doc.getItemValueString("PlainTextField"));
setRichItem ((RichTextItem) doc.getFirstItem("RichTextField"));
}
public void save() throws NotesException{
Database database = ExtLibUtil.getCurrentDatabase();
Document doc = database.getDocumentByUNID(getUnid());
doc.replaceItemValue("PlainTextField", getPlainItem());
doc.replaceItemValue("RichTextField",getRichItem());
doc.save();
}
public String getPlainItem() {
return plainItem;
}
public void setPlainItem(String plainItem) {
this.plainItem = plainItem;
}
public RichTextItem getRichItem() {
return richItem;
}
public void setRichItem(RichTextItem richItem) {
this.richItem = richItem;
}
public void setUnid(String unid) {
this.unid = unid;
}
public String getUnid() {
return unid;
}
而且在XPage上
<xp:inputText value="#{richTextTest.plainItem}" id="plainTextField1"> </xp:inputText>
<xp:br></xp:br>
<xp:inputRichText value="#{richTextTest.richItem}" id="richTextField1"></xp:inputRichText>
<xp:br></xp:br>
<xp:button value="Save" id="button1"><xp:eventHandler event="onclick" submit="true" refreshMode="complete">
<xp:this.action>
<xp:executeScript script="#{richTextTest.save}"></xp:executeScript>
</xp:this.action></xp:eventHandler></xp:button>
託管bean在序列化過程中無法保存Notes對象,所以私有變量將不起作用。您可以將RichText作爲普通字符串存儲。在你的SAVE活動中,還有更多的工作。最簡單/最省心的方法是將RichText(不是Richtext,但是HTML - 網上沒有RichText)作爲Mime處理,並使用Mime類來保存 – stwissel
@stwissel非常感謝您的幫助。在XPages中,Java/Managed Beans是一個非常艱難的途徑,沒有任何關於do和not的詳細文檔。是的,我認爲在序列化和Notes對象上存在一些問題,我在努力中遇到了一些問題。我沒有使用Mime的經驗,所以我想這是我的下一步。 –