Hello,
Bon, ma question peut paraitre un peu bizarre, mais voilà ce que je voudrais faire :
J'ai un composant (une sorte de datatable) que j'ai créé moi même (en créant le composant et son renderer). Mais voilà, j'aimerais que ce composant soit toujours contenu dans un autre type de composant (plus exactement un <a4j:outputPanel>).
Comment, sans toucher à mes pages JSF, je peux faire cela ?
J'avais dans l'idée de surcharger le setParent de mon composant, en faisant quelque chose comme ça :
Le problème, c'est que si je fais ça, je me retrouve avec une erreur indiquant qu'il y a un duplicate Id pour ma table. A priori, JSF a donc voulu créer 2 fois ma table...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 @Override public void setParent(UIComponent parent) { if (parent instanceof HtmlAjaxOutputPanel) { super.setParent(parent); } else { HtmlAjaxOutputPanel outputPanel = new HtmlAjaxOutputPanel(); parent.getChildren().remove(this); outputPanel.getChildren().add(this); parent.getChildren().add(outputPanel); } }
En plus de cela, je trouve cette solution un peu crados.
Comment puis-je procéder pour arriver à mes fins ?
Partager