JSF: restitue sous conditions un élément de liste (& lt; li & gt;)
J'ai juste hérité d'un projet mis en œuvre dans le programme JSF. J'ai le code suivant qui a l'air bien dans Chrome, mais Firefox rend les frontières sur le "vide" les éléments de la liste:
<ul>
<li><a href="/home">Home</li>
<li>
<s:link view="/signup.xhtml" rendered="#{someCondition}">Sign Up</s:link>
</li>
<!-- etc... -->
</ul>
Qui finit par ressembler à:
Est-il JSF balise conditionnelle, le rendu de la <li>
?
source d'informationauteur George Armhold
Vous devez vous connecter pour publier un commentaire.
Pas
li
est de vanille html, pas un composant jsf.Vous pouvez hack en plaçant un
<h:panelGroup />
autour de lali
élément et le réglage de larendered
de propriété sur elle.ie.
Une autre option est d'utiliser
<f:verbatim rendered="#{someCondition}" >
mais gardez à l'esprit qu'il a été déprécié en JSF 2.0.Si vous le faites comme @CoolBeans exemple, vous obtiendrez un <span> autour de votre <li>. Dans certains cas, il peut perturber votre mise en page, d'ailleurs vous ne voulez pas vraiment une balise supplémentaire en vertu de <ul>. Pour se débarrasser de lui, l'utilisation
<ui:fragment rendered="#{condition}" />
autour de votre élément au lieu de <h:panelGroup>.Aussi, vous pouvez utiliser l'attribut style pour cacher un élément:
Vous pouvez également utiliser le noyau de la bibliothèque JSTL:
Je pense que l'utilisation de cette étiquette rend le code plus facile à comprendre que l'aide de la panelGroup tag.