Rendu conditionnel des composants non JSF (HTML standard et texte modèle))
j'essaie de rendre conditionnellement un <tr>
donc je ne peux pas utiliser <h:panelGroup>
comme il va rendre à <span> or <div>
mon approche actuelle (de travail) est la suivante:
<h:outputFormat rendered="#{negotiator.maySend}">
<tr> my tr stuff </tr>
</h:outputFormat>
cela fonctionne, mais je ne suis pas sûr si c'est la façon d'abuser <h:outputFormat>
- avant que j'ai utilisé <h:outputLabel>
mais cela a été rendu à <label>
dans IE.
j'ai également lire les réponses à cette question, mais comme mentionné ci-dessus, ils ne fonctionneront pas pour moi à cause du <tr>
: Comment ne pas rendre le bloc entier dans JSF?
1 réponses
Je ne peux pas utiliser
"<h:panelGroup>
comme il va rendre à<span>
ou<div>
apparemment vous ne l'avez pas testé soigneusement. Le <h:panelGroup>
ne rendra rien si vous ne spécifiez pas les attributs qui devraient finir dans le côté client, comme layout
, id
, styleClass
, etc.
donc, cela devrait techniquement parfaitement fonctionner très bien.
<h:panelGroup rendered="#{negotiator.maySend}">
<tr> my tr stuff </tr>
</h:panelGroup>
cependant, mieux pour le but principal serait d'utiliser <ui:fragment>
.
<ui:fragment rendered="#{negotiator.maySend}">
<tr> my tr stuff </tr>
</ui:fragment>
c'est d'ailleurs aussi possible avec <f:verbatim>
, mais cela est déprécié depuis JSF 2.0 car il est conçu spécifiquement pour l'utilisation dans JSP.
voir aussi:
- Alternative à l'ui: fragment dans JSF
- affichage conditionnel des composants JSF
- Comment trouver l'identifiant client du component pour ajax update/render? Ne peut trouver le composant avec l'expression "foo" référencé de "barre "
- Ajax update / render ne fonctionne pas sur un composant qui a rendu l'attribut