我正在使用Primefaces开发一个Web应用程序,但是有一个嵌套的Object来表示我从数据库中获取的数据。
具体一点:我在很多列上做了请求,返回了很多行,所以我将这个结果存入List<HashMap<String, Object>>
(每个“字符串键”是具有关联的“对象值”的列的名称。以正常方式,我应该有一个List<MyObject>
来保存我的数据,其中 MyObject 具有与我的请求所拥有的列一样多的属性。但我不能这样做,因为我正在构建一个呈现我的请求结果的页面,并且可以在管理空间中动态管理列(因此您可以通过简单地选中/取消选中框来添加或删除管理空间中的列并验证你的更改。我被迫做List<HashMap<String, Object>>
所以。)
List<MyObject>
来保存我的数据”。
实际上,我正在寻找能够取代“ sortBy ”中的#{myBean.list.attribute}
的内容。 (像#{myBean.list[?]['key']}
这样的EL或类似的东西)
换句话说,我正试图找到一种方法来强制Primeface对List中每个Map的每个值进行排序,这个值是由我传递的键链接的。
例如,我的请求会返回一个歌曲列表,每首歌的特点是他的歌手,类型,日期,国家。
所以我将举例说明这个名单:
Map1(<Singer, SamTsui>
<Type, Pop>
<Date, 2010>
<Country, US>)
Map2(<Singer, Jo>
<Type, Blues>
<Date, 1988>
<Country, US>)
Map3(<Singer, DaftPunk>
<Type, Electro>
<Date, 2013>
<Country, FR>)
Map4(<Singer, Shinee>
<Type, Kpop>
<Date, 2009>
<Country, JP>)
如何对每首歌的歌手进行排序?还是日期?
有没有办法做到这一点,或者我被迫List<MyObject>
使用 p:列上的“ sortBy ”功能?
非常感谢,
PS:对于“ filterBy ”有相同的问题,但我认为如果我们找到解决方案,解决此问题的方法将类似。
PS2:我认为我们不需要代码,这只是一个普遍的问题,因为可以询问每个人试图用Primefaces显示List<HashMap<?, ?>>
或嵌套对象,并想要添加过滤器/在此列表中排序。