Jsf Primefaces排序为动态表

Jsf Primefaces排序为动态表,jsf,primefaces,primefaces-datatable,Jsf,Primefaces,Primefaces Datatable,我在动态搜索中排序项目时遇到问题。用户将能够标记他想要搜索的系统,他可以粘贴未知数量的SearchValue,他可以选择搜索他的SearchValue的字段。这部分已经正常工作了。结果对象如下所示: 公共类搜索结果{ 私有字符串搜索字段; 私有布尔搜索; 私有列表输出命令; 私人列表搜索结果; 公共搜索结果(){ 搜索=假; searchField=“”; searchResults=newarraylist(); outputOrder=新的ArrayList(); } public void

我在动态搜索中排序项目时遇到问题。用户将能够标记他想要搜索的系统,他可以粘贴未知数量的SearchValue,他可以选择搜索他的SearchValue的字段。这部分已经正常工作了。结果对象如下所示:

公共类搜索结果{
私有字符串搜索字段;
私有布尔搜索;
私有列表输出命令;
私人列表搜索结果;
公共搜索结果(){
搜索=假;
searchField=“”;
searchResults=newarraylist();
outputOrder=新的ArrayList();
}
public void setSearchValue(字符串searchValue){
this.searchField=searchValue;
this.outputOrder=新的ArrayList();
Map oO=ServerCache.getCache().getSysConf().getDefaultOutputOrder();
for(字符串k:oO.keySet()){
如果(k.equals(searchValue))继续;
OutputOrder订单=新的OutputOrder(k,oO.get(k));
outputOrder.add(订单);
}
已搜索(正确);
}
公共字符串getSearchField(){return searchField;}
公共布尔值isSearched(){return searched;}
public List getSearchResults(){return searchResults;}
公共列表getOutputOrder(){return outputOrder;}
public void setSearched(布尔搜索){this.searched=searched;}
public void setSearchResults(列出搜索结果){this.searchResults=searchResults;}
}
我需要searched属性来确定是否可以显示表,outputOrder用于必须显示的列,将来我想让用户有机会保存自己的顺序。搜索字段是用户为搜索选择的字段。这里开始棘手的部分。该表如下所示:


如您所见,第一列是用户搜索的值。除了sortBy之外,该表工作正常,但我需要对其进行排序,因为我想按搜索项对结果进行分组。用户需要这样做,因为他必须比较不同参照系统中某个项目的不同结果。如果我在加载时(搜索之前)呈现表,我会遇到一个问题,因为没有要排序的列,也没有要排序的数据。如果它被搜索,我想要一个SortMeta对象,但我找不到一个解决方案如何使用它