Komponen jsf apa yang dapat membuat tag div?

129

Misalnya: h:inputTextakan membuat a "input type='text'". Tag jsf apa yang dapat membuat "div"tag?

pengguna101442
sumber
4
Ingatlah dengan Facelet dan versi JSF yang lebih baru, Anda bebas untuk mencampur tag HTML standar dengan tag JSF Anda.
Drew
Poin bagus, tapi sayangnya, saya terjebak dengan versi yang sangat lama.
user101442

Jawaban:

234

Anda dapat membuat DIVkomponen menggunakan <h:panelGroup/>. Secara default, <h:panelGroup/>akan menghasilkan SPAN dalam kode HTML.

Namun, jika Anda menentukan layout="block", maka komponen tersebut akan menjadi DIVdalam kode HTML yang dihasilkan.

<h:panelGroup layout="block"/>
Romain Linsolas
sumber
9
Tidak merender untuk saya kecuali saya menambahkan gaya atau kelas gaya ke panelgroup, menggunakan implementasi mojarra-1.2_15.
James McMahon
3
Addendum, atau atur atribut ID. Jika saya tidak melakukan ini, itu hanya muncul dalam HTML tanpa tag DIV di sekitarnya.
James McMahon
1
bukankah seharusnya kita langsung menggunakan divtag itu sendiri? Apa yang mungkin menjadi masalah jika ada?
Rajat Gupta
4
@Marcos Tentu saja, Anda dapat menggunakan divtag, tetapi dalam kasus ini, komponen ini tidak akan menjadi bagian dari pohon komponen JSF (yaitu tidak tersedia dalam kode Java). Selain itu, Anda tidak akan dapat me-refresh secara langsung menggunakan Ajax (kecuali, tentu saja, jika Anda melakukan refresh langsung di beberapa kode JavaScript Anda).
Romain Linsolas
1
Jawabannya hanya setengah dari kebenaran. Lihat di sini docs.oracle.com/javaee/5/javaserverfaces/1.2/docs/tlddocs/h/… atau di sini docs.oracle.com/javaee/6/javaserverfaces/2.1/docs/vdldocs/… . Sepotong informasi penting adalah bahwa Anda juga memerlukan satu styleatau styleClassatribut untuk divterjadi ... yang membuat cerita itu benar-benar aneh IMHO: sebuah dataran <h:panelGroup layout="block">akan membuat <span>? Itu tidak masuk akal bagi saya.
Kawu
18

Di JSF 2.2 dimungkinkan untuk menggunakan elemen passthrough :

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

Persyaratannya adalah memiliki setidaknya satu atribut dalam elemen menggunakan namespace jsf.

mp31415
sumber
14

Terlepas dari <h:panelGroup>komponen (yang sedikit mengejutkan bagi saya), Anda bisa menggunakan <f:verbatim>tag dengan parameter escape yang diatur falseuntuk menghasilkan mark-up yang Anda inginkan. Sebagai contoh:

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

Ingatlah bahwa ini sedikit kurang elegan daripada panelGroupsolusinya, karena Anda harus membuat ini untuk tag awal dan akhir jika Anda ingin membungkus salah satu kode JSF Anda dengan divtag.

Atau, semua Kerangka UI utama memiliki divtag komponen, atau Anda bisa menulis sendiri.

Nick Grubb
sumber
4
bukankah seharusnya kita langsung menggunakan tag div itu sendiri? Apa yang mungkin menjadi masalah jika ada?
Rajat Gupta
3

Anda dapat menggunakan komponen myfaces tomahawk

http://myfaces.apache.org/tomahawk-project/tomahawk12/tagdoc/t_div.html

jack jin
sumber
Saya bahkan menghapus tomahawk dari sebuah proyek. Setelah itu proyeknya jauh lebih cepat! Saya tidak akan merekomendasikan untuk menggunakan tomahawk!
Marcel
1
Saya membuat jawaban ini pada tahun 2011. sekarang, saya menggunakan primefaces, dan merasa sangat baik
jack jin
-3

Saya pikir kita bisa menggunakan tag verbatim, seperti pada tag ini kita menggunakan salah satu tag HTML

Sanket
sumber
Serius? MENGAPA? Tag Verbatim adalah sesuatu yang relevan di era jsp. Di era facelets (10 tahun sekarang?) Itu sebagian besar berlebihan, tentu dalam hal ini.
Kukeltje