Quel composant jsf peut rendre une balise div?


129

Par exemple: h:inputTextrendra un fichier "input type='text'". Quelle balise jsf peut rendre une "div"balise?


4
Gardez à l'esprit qu'avec Facelets et les nouvelles versions de JSF, vous êtes libre de mélanger des balises HTML standard avec vos balises JSF.
Match

Bon point, mais malheureusement, je suis coincé avec une version très ancienne.
user101442

Réponses:


234

Vous pouvez créer un DIVcomposant à l'aide de <h:panelGroup/>. Par défaut, le <h:panelGroup/>générera un SPAN dans le code HTML.

Cependant, si vous spécifiez layout="block", le composant sera un DIVdans le code HTML généré.

<h:panelGroup layout="block"/>

9
Ne rend pas pour moi à moins que j'ajoute un style ou une classe de style au panelgroup, en utilisant l'implémentation mojarra-1.2_15.
James McMahon

3
Addendum ou définissez l'attribut ID. Si je ne fais pas cela, il apparaît simplement dans le HTML sans les balises DIV environnantes.
James McMahon

1
ne devrions-nous pas immédiatement utiliser le divtag lui-même? Quel peut être le problème le cas échéant?
Rajat Gupta

4
@Marcos Bien sûr, vous pouvez utiliser la divbalise, mais dans ce cas, ce composant ne fera pas partie de l'arborescence des composants JSF (c'est-à-dire non disponible dans le code Java). En plus de cela, vous ne pourrez pas l'actualiser directement en utilisant Ajax (sauf, bien sûr, si vous faites l'actualisation directement dans une partie de votre code JavaScript).
Romain Linsolas du

1
La réponse n'est que la moitié de la vérité. Voir ici docs.oracle.com/javaee/5/javaserverfaces/1.2/docs/tlddocs/h/… ou ici docs.oracle.com/javaee/6/javaserverfaces/2.1/docs/vdldocs/… . L'information importante est que vous avez également besoin d'un styleou d' un styleClassattribut pour qu'un divse produise ... ce qui rend l'histoire absolument étrange à mon humble avis: une plaine <h:panelGroup layout="block">rendra un <span>? Cela n'a pas de sens pour moi.
Kawu

18

Dans JSF 2.2, il est possible d'utiliser des éléments de relais :

<html xmlns="http://www.w3.org/1999/xhtml"
  xmlns:jsf="http://xmlns.jcp.org/jsf">
    ...
    <div jsf:id="id1" />
    ...
</html>

La condition est d'avoir au moins un attribut dans l'élément en utilisant l'espace de noms jsf.


14

En dehors du <h:panelGroup>composant (ce qui me surprend un peu), vous pouvez utiliser une <f:verbatim>balise avec le paramètre d'échappement défini sur falsepour générer le balisage de votre choix. Par exemple:

<f:verbatim escape="true">
    <div id="blah"></div>
</f:verbatim>

Gardez à l'esprit que c'est un peu moins élégant que la panelGroupsolution, car vous devez générer cela pour les balises de début et de fin si vous souhaitez envelopper l'un de votre code JSF avec lediv balise.

Alternativement, tous les principaux frameworks d'interface utilisateur ont une divbalise de composant, ou vous pouvez écrire la vôtre.


4
ne devrions-nous pas immédiatement utiliser la balise div elle-même? Quel peut être le problème le cas échéant?
Rajat Gupta


-3

Je pense que nous pouvons utiliser une balise verbatim, car dans cette balise, nous utilisons l'une des balises HTML


Sérieusement? POURQUOI? La balise Verbatim est quelque chose qui était pertinent à l'époque jsp. A l'époque des facelets (10 ans maintenant?) C'est surtout superflu, certainement dans ce cas.
Kukeltje
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.