前景提要
HDC调试需求开发(15万预算),能者速来!>>>
项目使用的是primeface做页面开发,有一个datatable用来显示role这个表,如图。现在想实现按字段排序功能
代码如下: list = roleservice.findAll(); //paramString代表按那個字段排序, paramSortOrder是正或倒排序 if (paramString != null) { Collections.sort(list, new Sort(paramString, paramSortOrder)); }
public class Sort implements Comparator<Role> { //實現比較 private static final Logger log = LoggerFactory.getLogger(Sort.class); private String sortField; private SortOrder sortOrder; public Sort(String sortField, SortOrder sortOrder) { this.sortField = sortField; this.sortOrder = sortOrder; } public int compare(Role car1, Role car2) { try { Object value1 =Role.class.getField(this.sortField).get(car1); Object value2 = Role.class.getField(this.sortField).get(car2); int value = ((Comparable) value1).compareTo(value2); return SortOrder.ASCENDING.equals(sortOrder) ? value : -1 * value; } catch (Exception e) { throw new RuntimeException(e.getMessage()); } } }
Role 有3個字段,一個是Long型ID,2個是String。代碼都是照搬primeface 的DEMO的
http://www.primefaces.org/showcase/ui/data/datatable/lazy.xhtml
現在問題是在頁面點擊排序是沒有反應,後臺發現程序拋出了異常
各位大神能幫忙看下是什麼問題嗎?說到底就是實現一個list按對象某個屬性排序,要怎麼寫更好一點?