1

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

4

2 回答 2

9

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

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

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

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

同样,如果它是像HashSet.

于 2012-08-08T12:25:40.677 回答
1

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

组件喜欢ui:repeath:datatable总是需要排序来显示数据,因此您最好的选择是将您的转换SetList第一个。

于 2012-08-08T10:09:56.823 回答