上下文是MyFaces的2.0.2,可能還加入戰斧20-1.1.10
我已經創建數據表(目前的h:dataTable
,但也可以是使用Tomahawk的t:dataTable
)在後臺bean中顯示List<MyObject>
的某些特定屬性。我通過僅返回列表的subList
進行分頁,並且還通過單擊列標題進行排序。
我需要做的下一件事是確保表總是顯示固定數量的行。例如,如果我的頁面大小爲5,並且列表中有12個項目,則需要第3頁顯示最後兩個項目以及3個空白行。
打表的最後一頁時,我曾經試圖「墊」的subList
與myObject
空值都空和實例,但是這導致了ConcurrentModificationException
(視圖試圖getDisplayList
甚至分頁方法是仍然增加額外的值)。然後,我嘗試以相同的方式填充主列表,但後來在我的排序功能上得到了NullPointer
(在後視中是一個不容易理解的問題)。另外,這些東西都是在支持者身上增加的開銷,當我寧願在xhtml視圖中執行此操作時。
(h:/t:)dataTable
確實有rows
屬性,但是它指定了顯示的最大行數,而不是最小值,因爲我需要。
想法嗎?
你會注意到這是我嘗試過的一件事。結果是排序函數上的NullPointer異常。我使用匿名內部Comparator類,並且函數「public int compare(MyObject obj1,MyObject obj2)」的聲明是如果對象本身爲null時拋出異常的地方。如果這些對象不是null而是它們的值,那麼當我有這個函數時拋出異常,比如說「return obj1.getStringValue()。compareTo(obj2.getStringValue());」 – cobaltduck 2010-11-25 15:30:15