Quale componente jsf può eseguire il rendering di un tag div?


129

Ad esempio: h:inputTextrenderà a "input type='text'". Quale tag jsf può eseguire il rendering di un "div"tag?


4
Tieni a mente con Facelets e le versioni più recenti di JSF, sei libero di mescolare i tag HTML standard con i tuoi tag JSF.
Estratto l'

Un buon punto, ma sfortunatamente, sono bloccato con una versione molto vecchia.
user101442

Risposte:


234

È possibile creare un DIVcomponente utilizzando il <h:panelGroup/>. Per impostazione predefinita, <h:panelGroup/>genererà uno SPAN nel codice HTML.

Tuttavia, se si specifica layout="block", il componente sarà a DIVnel codice HTML generato.

<h:panelGroup layout="block"/>

9
Non esegue il rendering per me a meno che non aggiunga uno stile o una classe di stile al panelgroup, usando l'implementazione mojarra-1.2_15.
James McMahon,

3
Addendum o imposta l'attributo ID. Se non lo faccio, viene visualizzato solo nell'HTML senza i tag DIV circostanti.
James McMahon,

1
non dovremmo subito usare il divtag stesso? Quale potrebbe essere il problema?
Rajat Gupta,

4
@Marcos Naturalmente, è possibile utilizzare il divtag, ma in questo caso questo componente non farà parte dell'albero dei componenti JSF (ovvero non disponibile nel codice Java). Inoltre, non sarai in grado di aggiornarlo direttamente utilizzando Ajax (tranne, ovviamente, se esegui l'aggiornamento direttamente in alcuni dei tuoi codici JavaScript).
Romain Linsolas,

1
La risposta è solo metà della verità. Vedi qui docs.oracle.com/javaee/5/javaserverfaces/1.2/docs/tlddocs/h/… o qui docs.oracle.com/javaee/6/javaserverfaces/2.1/docs/vdldocs/… . L'importante informazione è che hai anche bisogno di uno styleo di un styleClassattributo perché divaccada ... il che rende la storia assolutamente strana IMHO: una pianura <h:panelGroup layout="block">renderà un <span>? Non ha senso per me.
Kawu,

18

In JSF 2.2 è possibile utilizzare elementi passthrough :

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

Il requisito è avere almeno un attributo nell'elemento usando lo spazio dei nomi jsf.


14

A parte il <h:panelGroup>componente (che mi sorprende un po '), potresti usare un <f:verbatim>tag con il parametro escape impostato falseper generare il mark-up che desideri. Per esempio:

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

Tieni presente che è un po 'meno elegante della panelGroupsoluzione, poiché devi generarlo sia per i tag di inizio che di fine se vuoi racchiudere uno qualsiasi del tuo codice JSF con ildiv tag.

In alternativa, tutti i principali frame dell'interfaccia utente hanno un divtag componente, oppure puoi scrivere il tuo.


4
non dovremmo subito usare il tag div stesso? Quale potrebbe essere il problema?
Rajat Gupta,


-3

Penso che possiamo usare il tag testuale, poiché in questo tag utilizziamo uno qualsiasi dei tag HTML


Sul serio? PERCHÉ? Il tag Verbatim è qualcosa di rilevante nell'era jsp. Nell'era delle facce (ormai 10 anni?) È per lo più superflua, certamente in questo caso.
Kukeltje,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.