最近我们将服务器从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()
中返回一个包含多个值的实际数组,因为我们现有的代码失败了。
目前的行为对我来说似乎是对的,但是在未来的版本中会再次改变吗?他们是一种修改此行为而无需修改任何代码的方法(因为我们必须进行大量修改)?
答案 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');