1

有什么区别:

  • 对象放置(可序列化键,对象值)
  • 无效添加(可序列化键,对象值)

JSF中StateHelper中的方法?

4

2 回答 2

2

我发现 api 文档对自己没有太大帮助并对其进行了调查。每次调用 add 时,它都会将另一个值附加到保存在给定键下的列表中。如果你在那个键上调用 get ,你会得到一个列表。add 方法可以节省您创建该列表并监视极端情况,例如。当键为空时创建列表。

您提到的 put 的工作方式类似于 map-like put。它在一个键下保存一个值。

相反,有一个带有 3 个参数的重载 put。它在该键下创建一个映射,并使用另一对键/值对该映射进行放置。再次,获得钥匙会给你一张地图。

这基本上就是添加和放置工作的方式。还有一些事情可以使部分状态正常工作。总结一下:当你想在一个键下添加多个值时,你可以使用 add。带有 2 个参数的 put 可以为您提供类似地图的行为。put 带有 3 个参数可让您在一个键下填充地图。

于 2013-03-13T14:41:04.057 回答
0

来自Mojarra API文档:

void add(java.io.Serializable key, java.lang.Object value)
将指定值存储在 StateHelper 内部的 List 中。

java.lang.Object put(java.io.Serializable key, java.lang.Object value) 返回之前存储的值,存储指定的键/值对。

我猜 MyFaces 以类似的方式实现了它。

于 2012-08-29T14:33:45.137 回答