保存在 bean 中后 Document 中的重复项
duplicate items in Document after saving in a bean
我在使用通过 java bean 保存其值的 XPage 时遇到奇怪但可重现的行为。 copyAllItems 到文档后,文档中有两个富文本项。第一个是空的,第二个按预期填充。
这是我的 Xpage:
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core"
xmlns:xc="http://www.ibm.com/xsp/custom">
<xp:this.data>
<xp:dominoDocument var="docDataSource" formName="test"></xp:dominoDocument>
</xp:this.data>
<xp:div id="test">
<xp:fileUpload id="fileUpload1" value="#{docDataSource.test}"></xp:fileUpload>
</xp:div>
<xp:button value="Label" id="button1">
<xp:eventHandler event="onclick" submit="true"
refreshMode="partial" refreshId="test">
<xp:this.action><![CDATA[#{javascript:registration.testCopyAllItems(docDataSource);}]]></xp:this.action>
</xp:eventHandler>
</xp:button>
这是我的 java bean 方法:
public void testCopyAllItems(DominoDocument docDataSource) throws NotesException{
Document docUser = database.createDocument(); // <- get any database
docDataSource.getDocument(true).copyAllItems(docUser, true);
docUser.save();
}
这是文档中的结果:
有没有人知道是什么导致了这个问题?
这似乎是一种 "normal" 行为,我在使用 RichtText 字段时经常看到这种行为。没关系。注释可以处理包含多个项目的 RichText 字段。
作为解决方法,
- 用
removeItem()
和 删除 copyAllItems()
之后的 RichText 字段
- 分别用
copyItem()
复制。
这应该只会产生一项。
我在使用通过 java bean 保存其值的 XPage 时遇到奇怪但可重现的行为。 copyAllItems 到文档后,文档中有两个富文本项。第一个是空的,第二个按预期填充。
这是我的 Xpage:
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core"
xmlns:xc="http://www.ibm.com/xsp/custom">
<xp:this.data>
<xp:dominoDocument var="docDataSource" formName="test"></xp:dominoDocument>
</xp:this.data>
<xp:div id="test">
<xp:fileUpload id="fileUpload1" value="#{docDataSource.test}"></xp:fileUpload>
</xp:div>
<xp:button value="Label" id="button1">
<xp:eventHandler event="onclick" submit="true"
refreshMode="partial" refreshId="test">
<xp:this.action><![CDATA[#{javascript:registration.testCopyAllItems(docDataSource);}]]></xp:this.action>
</xp:eventHandler>
</xp:button>
这是我的 java bean 方法:
public void testCopyAllItems(DominoDocument docDataSource) throws NotesException{
Document docUser = database.createDocument(); // <- get any database
docDataSource.getDocument(true).copyAllItems(docUser, true);
docUser.save();
}
这是文档中的结果:
有没有人知道是什么导致了这个问题?
这似乎是一种 "normal" 行为,我在使用 RichtText 字段时经常看到这种行为。没关系。注释可以处理包含多个项目的 RichText 字段。
作为解决方法,
- 用
removeItem()
和 删除 - 分别用
copyItem()
复制。
copyAllItems()
之后的 RichText 字段
这应该只会产生一项。