从8.5.1和8.5.3中的多值字段中获取价值

时间:2012-05-16 12:04:20

标签: xpages xpages-ssjs

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

<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()中返回一个包含多个值的实际数组,因为我们现有的代码失败了。

目前的行为对我来说似乎是对的,但是在未来的版本中会再次改变吗?他们是一种修改此行为而无需修改任何代码的方法(因为我们必须进行大量修改)?

2 个答案:

答案 0 :(得分:3)

我不完全知道版本/ fixpack,但是从8.5.2开始,这个bug就修复了。 因为这个,我有很多乐趣......

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

编辑2:
以下是其他一些潜在的问题:
1. What are the pitfalls in when moving a 8.5.2 XPages application to 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

答案 1 :(得分:0)

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

E.g。

getAsObject:return value.split('\ n');

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