【问题标题】:What is the difference between put and add method in statehelper in JSF 2JSF 2中statehelper中的put和add方法有什么区别
【发布时间】:2012-08-24 04:35:03
【问题描述】:

有什么区别:

  • Object put(Serializable key, Object value)
  • void add(Serializable key, Object value)

JSF 中 StateHelper 中的方法?

【问题讨论】:

    标签: jsf-2 java-ee-6 myfaces composite-component uicomponents


    【解决方案1】:

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

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

    相比之下,有 3 个参数的重载 put。它在该键下创建一个映射,并使用另一对键/值对该映射进行放置。同样,按一下键会给你一张地图。

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

    【讨论】:

      【解决方案2】:

      来自Mojarra API 文档:

      void add(java.io.Serializable key, java.lang.Object 值)
      将指定的值存储在内部的列表中 状态助手。

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-02-23
        • 2013-12-12
        • 2013-08-26
        • 2017-10-18
        • 2020-01-19
        • 1970-01-01
        • 2011-01-12
        • 2015-11-30
        相关资源
        最近更新 更多