我想在 JSF 2 中的 Set 中获取特定元素,请告知如何做到这一点。
问问题
7127 次
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:repeat
或h:datatable
总是需要排序来显示数据,因此您最好的选择是将您的转换Set
为List
第一个。
于 2012-08-08T10:09:56.823 回答