我想添加可排序標題到h:dataTable。我試圖按照http://balusc.blogspot.com/2006/06/using-datatables.html來做到這一點。以下呈現鏈接,但它什麼都不做。JSF 2.0可排序標題與h:datatable
list.xhtml
<h:dataTable value="#{iptableController.items}" var="item" border="0" cellpadding="2" cellspacing="0" rowClasses="jsfcrud_odd_row,jsfcrud_even_row" rules="all" style="border:solid 1px">
<h:column>
<f:facet name="header">
<h:commandLink actionListener="#{iptableController.sortDataList}">
<f:attribute name="sortField" value="getID"/>
<h:outputText value="#{bundle.ListIptableTitle_iptableId}"/>
</h:commandLink>
</f:facet>
<h:outputText value="#{item.iptableId}"/>
</h:column>
這是我試圖使用的控制器的一部分。
iptableController
public void sortDataList(ActionEvent event) {
String sortFieldAttribute = getAttribute(event, "sortField");
// Get and set sort field and sort order.
if (sortField != null && sortField.equals(sortFieldAttribute)) {
sortAscending = !sortAscending;
} else {
sortField = sortFieldAttribute;
sortAscending = true;
}
// Sort results.
if (sortField != null) {
Collections.sort(getFacade().findAll(), new DTOComparator(sortField, sortAscending));
}
}
DTOCompartor與鏈接中的DTOCompartor完全相同。
我覺得我已經完全走錯了路,但一直無法找到更好的指導。任何幫助都將不勝感激。
編輯:
我打開了更精細的過濾,並能夠看到一個問題。我不確定是什麼原因造成的,但看起來控制器正在被添加兩次,並被分配到<error>.
包。我重命名了該文件,並已解決。清理一些其他問題(調用不存在的功能等)後,我堅持用錯誤:
SEVERE: JSF1073: javax.faces.event.AbortProcessingException caught during processing of INVOKE_APPLICATION 5 : UIComponent-ClientId=j_idt12:j_idt22, Message=/iptable/List.xhtml @26,88 actionListener="#{Controller.sortList}": java.lang.RuntimeException: Cannot compare test, test with t, test1 on [getiptableID]
SEVERE: /iptable/List.xhtml @26,88 actionListener="#{Controller.sortList}": java.lang.RuntimeException: Cannot compare test, test with t, test1 on [getiptableID]
在DTOComparator評論指出://如果出現這種異常,那麼它通常是一個錯誤的DTO開發人員。
我干將看起來都像:
public String getIptableName() {
return iptableName;
}
感謝您的快速響應。 list.xhtml定義了一個表單:。 我檢查了您提供的鏈接中的1-3,我很確定這些都沒有發生。我不知道如何檢查4-7。 這裏是完整的文件:http://pastebin.com/S4hpS1Gg 和完整的控制器:http://pastebin.com/Kz6T3UZE 完整的實體:http://pastebin.com/6tN93Dui –
duallain
2010-06-23 21:24:40
然後它應該有完成*某事*。服務器是否被打過? JSF生命週期的哪些階段已被處理? – BalusC 2010-06-23 21:27:14
我已經在上面添加了更多信息。它正在擊中服務器,只是沒有對我做任何可見的事情。 – duallain 2010-06-23 23:08:02