Xpages NotesXSPDocument-插入布尔值文档
我有一个XPage,由于(应该是)一个小变化,它刚刚坏了 如果我运行(其中document1是notesxpdocument数据源): 其次是:Xpages NotesXSPDocument-插入布尔值文档,xpages,lotus-domino,xpages-ssjs,Xpages,Lotus Domino,Xpages Ssjs,我有一个XPage,由于(应该是)一个小变化,它刚刚坏了 如果我运行(其中document1是notesxpdocument数据源): 其次是: document1.getDocument(true); 我最后犯了一个错误 调用方法NotesXPDocument.getDocument(布尔值)null时发生[TypeError]异常 这是一个新文档(所以还没有保存,我还没有测试,但可能会有所不同),因此我不能只在基础文档上设置字段 它似乎不是页面中任何其他内容的产物,基本测试页面证实了这一
document1.getDocument(true);
我最后犯了一个错误
调用方法NotesXPDocument.getDocument(布尔值)null时发生[TypeError]异常
这是一个新文档(所以还没有保存,我还没有测试,但可能会有所不同),因此我不能只在基础文档上设置字段
它似乎不是页面中任何其他内容的产物,基本测试页面证实了这一点。除了布尔值之外,它不会发生在任何东西上(我发现)
除了更改数据类型之外,还有什么建议吗?我想这就是我最终要做的(还有一个bug报告),但我想知道我并没有先错过什么
谢谢
------------测试XSP代码------------
按钮1代码:document1.replaceItemValue(“测试”,false);
var doc:NotesDocument=document1.getDocument(true);
打印(doc.toString());
按钮2代码: ;document1.replaceItemValue(“测试”、“测试”);var doc:NotesDocument=document1.getDocument(true);
打印(doc.toString());
如果查看堆栈跟踪,您将看到以下内容:
....
NotesException: Unknown or unsupported object type in Vector
lotus.domino.local.Document.NreplaceItemValue(Native Method)
lotus.domino.local.Document.replaceItemValue(Unknown Source)
com.ibm.xsp.model.domino.wrapped.DominoDocument.applyChangesToDoc(DominoDocument.java:1698)
com.ibm.xsp.model.domino.wrapped.DominoDocument.applyChanges(DominoDocument.java:1649)
com.ibm.xsp.model.domino.wrapped.DominoDocument.getDocument(DominoDocument.java:544)
com.ibm.xsp.script.WrapperDominoEx$fct_DominoDocument.call(WrapperDominoEx.java:254)
....
问题是您使用的replaceItemValue方法的数据类型不受支持
以下是所有允许的数据类型的列表:
- 字符串文本
- 整数
- 双号
- 日期时间日期时间项
- 带有字符串、整数、双精度或日期时间元素的java.util.Vector多值文本、数字或日期时间项
- 项目与项目的数据类型相同
为什么要将该值设置为false?数字。我想我必须使用一个数字来代替。我并不是真的将其设置为false,只是为了测试/示例。+1确切地说,布尔值不是合法的注释项类型。按照惯例,它应该是0/1(数字)或“/”1(字符串)。
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core"><xp:this.data>
<xp:dominoDocument var="document1" formName="Test" />
</xp:this.data><xp:span style="font-weight:bold">
Button 1 code:</xp:span><xp:br></xp:br>document1.replaceItemValue("Test",false);
<xp:br></xp:br>var doc:NotesDocument = document1.getDocument(true);
<xp:br></xp:br>print(doc.toString());<xp:br></xp:br>
<xp:button value="Test 1" id="button1">
<xp:eventHandler event="onclick" submit="true"
refreshMode="complete">
<xp:this.action><![CDATA[#{javascript:document1.replaceItemValue("Test",false);
var doc:NotesDocument = document1.getDocument(true);
print(doc.toString());}]]></xp:this.action>
</xp:eventHandler></xp:button>
<xp:br></xp:br>
<xp:br></xp:br>
<xp:br></xp:br>
<xp:br></xp:br><xp:span style="font-weight:bold">
Button</xp:span><xp:span style="font-weight:bold"> 2</xp:span><xp:span style="font-weight:bold"> Code:</xp:span><xp:span style="font-weight:bold"></xp:span> <xp:br></xp:br>document1.replaceItemValue("Test","Test);<xp:br></xp:br>var doc:NotesDocument = document1.getDocument(true);
<xp:br></xp:br>print(doc.toString());<xp:br></xp:br><xp:button value="Test 2" id="button2">
<xp:eventHandler event="onclick" submit="true"
refreshMode="complete">
<xp:this.action><![CDATA[#{javascript:document1.replaceItemValue("Test","Test");
var doc:NotesDocument = document1.getDocument(true);
print(doc.toString());}]]></xp:this.action>
</xp:eventHandler></xp:button></xp:view>
....
NotesException: Unknown or unsupported object type in Vector
lotus.domino.local.Document.NreplaceItemValue(Native Method)
lotus.domino.local.Document.replaceItemValue(Unknown Source)
com.ibm.xsp.model.domino.wrapped.DominoDocument.applyChangesToDoc(DominoDocument.java:1698)
com.ibm.xsp.model.domino.wrapped.DominoDocument.applyChanges(DominoDocument.java:1649)
com.ibm.xsp.model.domino.wrapped.DominoDocument.getDocument(DominoDocument.java:544)
com.ibm.xsp.script.WrapperDominoEx$fct_DominoDocument.call(WrapperDominoEx.java:254)
....