1

最近我们将服务器从 8.5.1 升级到 8.5.3,但遇到了一个问题。假设您在 XPages 中有一个多值字段,如下所示:

<xp:inputText id="inputText1" multipleTrim="true">
    <xp:this.multipleSeparator><![CDATA[#{javascript:"\n";}]]></xp:this.multipleSeparator>
</xp:inputText>

在 8.5.1 中,当我们编写getComponent("inputText1").getValue()它时,它曾经返回一个字符串,其中所有值都用逗号分隔。所以我们曾经这样做 - @Explode(getComponent("inputText1").getValue(), ",")

但是现在在 8.5.3 中getComponent("inputText1").getValue()返回一个包含多个值的实际数组,因为我们现有的代码失败了。

当前的行为对我来说似乎是正确的,但它会在未来的版本中再次改变吗?他们是否可以在不修改任何代码的情况下修改此行为(因为我们必须进行大量修改)?

4

2 回答 2

3

我不知道确切的版本/修复包,但自 8.5.2 以来,此错误已修复。因为这个,我玩得很开心……

编辑: 我认为是这个 SPR:
http ://www-10.lotus.com/ldd/fixlist.nsf/Public/A3CE2F9EF1B74D728525778A002810E6?OpenDocument

编辑 2:
这里有一些其他潜在的问题:
1.将 8.5.2 XPages 应用程序移动到 8.5.3
2. XSP.partialRefreshGet()需要一个对象,否则它将不再工作:

XSP.partialRefreshGet( '#{id:elementId}' ); // does NOT work in 8.5.3
XSP.partialRefreshGet( '#{id:elementId}' , {} ); // works in 8.5.3
于 2012-05-16T12:17:30.360 回答
0

避免将来出现问题的一种方法是编写自己的自定义转换器。

例如

getAsObject: 返回值.split('\n');

getAsString: return value.join('\n');

于 2012-05-18T05:52:17.110 回答