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?

10
demandé sur Community 2013-04-11 14:58:04

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:

23
répondu BalusC 2017-05-23 12:08:12