【问题标题】:How to access Set element in JSF 2?如何访问 JSF 2 中的 Set 元素?
【发布时间】:2012-08-08 09:14:18
【问题描述】:

我想在 JSF 2 的 Set 中获取特定元素 请告知如何做到这一点。

【问题讨论】:

  • 您能举例说明您想做什么吗?
  • @SJuan76,我希望能够在一组stackoverflow.com/questions/8637285/… 上执行以下帖子中的操作
  • 在这种情况下,您应该创建类似 public List getSetAsList(){return new ArrayList(mySetVariable);} 的内容

标签: jsf-2 el


【解决方案1】:

此问题并非特定于 JSF/EL。在普通 Java 中,您无法访问 Set 中的特定元素。 Set 没有像 get(index) 这样的方法 List 有。您需要将Set<T> 转换为T[] 数组或List<T>,以便您可以通过索引访问它。

这对于SortedSetLinkedHashSet 以可预测的方式起作用,仅当元素随后分别以排序顺序或插入顺序插入时。当它是 HashSet 时,这没有任何意义,因为您无法事先可靠地预测元素最终会在哪个索引处结束。

如果您使用的是 EL 2.2(您的问题历史证实了这一点),那么您可以使用 Set#toArray() 将其转换为数组,然后使用大括号符号 [] 按索引访问元素。下面的示例打印#{bean.someSet} 的数组表示的第二项。

#{bean.someSet.toArray()[1]}

同样,如果它是像 HashSet 这样的无序集合,这毫无意义。

【讨论】:

    【解决方案2】:

    您的问题还不清楚,但 JSF2 并不真正支持 Set

    ui:repeath:datatable 这样的组件总是需要排序 来显示数据,所以最好的选择是先将Set 转换为List

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多