J'essaie d'ajouter des en-têtes triables à un h: dataTable. J'essaye de suivre http://balusc.blogspot.com/2006/06/using-datatables.html pour faire ceci. Ce qui suit rend un lien mais ne fait rien.JSF 2.0 En-têtes triables avec h: datable
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>
Voici la partie du contrôleur que j'essaie d'utiliser.
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));
}
}
Le partenaire DTOCom est identique à celui du lien. J'ai l'impression d'avoir complètement fait fausse route, mais j'ai été incapable de trouver un meilleur guide. Toute aide serait appréciée.
EDIT:
Je me suis retourné sur le filtrage plus fin et a pu voir un problème. Je ne suis pas sûr de ce qui l'a causé, mais il semble que le contrôleur a été ajouté deux fois et a été alloué au paquet <error>.
. J'ai renommé le fichier et cela a été résolu. Après avoir nettoyé quelques autres questions (appeler des fonctions non Existant etc) Je suis coincé avec l'erreur:
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]
le commentaire dans DTOComparator indique que: // Si cette exception se produit, il est généralement un défaut du développeur DTO.
mes getters tous ressemblent:
public String getIptableName() {
return iptableName;
}
Merci pour votre réponse rapide. Le fichier list.xhtml a une forme définie:. J'ai vérifié 1-3 dans le lien que vous avez fourni et je suis à peu près sûr que cela ne se produit pas. Je ne sais pas trop comment vérifier 4-7. Voici le fichier complet: http://pastebin.com/S4hpS1Gg et le contrôleur complet: http://pastebin.com/Kz6T3UZE entité complète: http://pastebin.com/6tN93Dui –
duallain
Ensuite, il devrait avoir fait * quelque chose *. Le serveur a-t-il déjà été touché? Quelles phases du cycle de vie JSF ont été traitées? – BalusC
J'ai ajouté plus d'informations ci-dessus. Il frappait le serveur, il ne faisait rien de visible pour moi. – duallain