我有一个存储存档的作用域变量:
viewScope.MY_SCOPE = new Array();
viewScope.MY_SCOPE.push(["id0", 0, true]);
viewScope.MY_SCOPE.push(["id1", 1, false]);
viewScope.MY_SCOPE.push(["id2", 3, true]);
现在我想更新其中一项。
viewScope.MY_SCOPE[1][2] = "true";
失败并出现错误:
执行 JavaScript 操作表达式时出错put(int index,FBSValue value)
不支持JavaWrapperObject
.
如何更新数组中的特定项目?
将 SSJS 数组对象添加到作用域时,它会转换为 java.util.Vector。因此,如果你想设置该值,你应该使用
viewScope.MY_SCOPE[1].set(2,"true");
代替viewScope.MY_SCOPE[1][2] = "true";
.
我认为问题在于使用...[2] = "true"
尝试执行put
给定对象的方法。尽管put
可在 HashMap 或范围映射等 Map 中使用,Vector 使用set
代替put
改变价值观。因此,您会收到“不支持操作表达式 put(...)”错误。与此相反,获取变量没有问题viewScope.MY_SCOPE[1][2]
因为get
方法在 HashMap 和 Vector 中都可用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)