hy, Je souhaite afficher une certaine partie (une divigne par exemple) de mon modèle de guichet uniquement sous une certaine condition (par exemple, si je dispose des données pour le remplir). Le problème est: p>
Si je n'aijoute que le panneau (remplissant la DIV) si j'ai eu les données, une exception est lancée à chaque fois que j'appelle la page sans les données (car l'identifiant de guichet référencé n'est pas ajouté à l'arborescence du composant). p>
la seule solution qui me suis venu à l'esprit était d'ajouter un panneau vide s'il n'y a pas de données. Ce n'est pas une solution idéale car j'ai reçu un code inutile dans le code Java et de nombreuses divs vides dans mon HTML rendu. Em> p>
5 Réponses :
Je suppose que c'est pourquoi il y a
Vous pouvez appeler SETVISIBLE (FALSE); sur le composant que vous voulez cacher. p>
Comme @Miaubiz dit, vous pouvez appeler SetVisible (FALSE) ou vous pouvez remplacer la méthode ISvissible () si la visibilité est conditionnelle à un autre état (champs remplis, par exemple). P>
Yup, vous voulez remplacer isisible. Cela gardera l'ISvissible = FAUX MARKUP HTML de même de rendu à la page HTML finale. Aussi, selon les documents (mentionnés dans Ostypanel ), vous pouvez utiliser le WebMarkUpContainer comme composant d'emballage.
this.add(new SimpleResourceModelLabel(NO_DATA_LABEL){ private static final long serialVersionUID = 1L; @Override public boolean isVisible() { return myList.isEmpty(); } }); final WebMarkupContainer table = new WebMarkupContainer(MY_DATA_TABLE){ private static final long serialVersionUID = 1L; @Override public boolean isVisible() { return !myList.isEmpty(); } };
Plus de The Wicket Docs ( cwiki.apache.org/wicket/ Lifecycle-of-A-Wicket-Application.h TML ): Composant.Render () Suit ces étapes pour rendre un composant: 1. Déterminez la visibilité des composants. Si le composant n'est pas visible, la réponse de requestcycle est modifiée en NullResponse.getinstance (), qui est une mise en œuvre de la réponse qui ne fait que supprimer sa sortie.
Bien que ce soit une vieille question ici pourrait être une autre solution: Wicket: Enceinte (et Ceci )
L'avantage de cela pour moi est que j'empêche un nullpointerexc dans le / / ## La ligne marquée et la fonctionnalité enfermée du guichet sembleraient plus moche pour moi dans ce cas je pense. p> p>