ส่วนประกอบ jsf ใดที่สามารถแสดงผลแท็ก div ได้


129

เช่น: h:inputTextจะแสดงไฟล์"input type='text'". แท็ก jsf ใดสามารถแสดงผล"div"แท็กได้


4
โปรดทราบว่า Facelets และ JSF เวอร์ชันใหม่กว่าคุณสามารถผสมแท็ก HTML มาตรฐานเข้ากับแท็ก JSF ได้อย่างอิสระ
Drew

จุดดี แต่น่าเสียดายที่ฉันติดอยู่กับเวอร์ชันเก่ามาก
user101442

คำตอบ:


234

คุณสามารถสร้างDIVส่วนประกอบโดยใช้ไฟล์<h:panelGroup/>. โดยค่าเริ่มต้น<h:panelGroup/>จะสร้าง SPAN ในโค้ด HTML

อย่างไรก็ตามหากคุณระบุlayout="block"ส่วนประกอบนั้นจะเป็นDIVโค้ด HTML ที่สร้างขึ้น

<h:panelGroup layout="block"/>

9
ไม่แสดงผลให้ฉันเว้นแต่ฉันจะเพิ่มสไตล์หรือสไตล์คลาสให้กับกลุ่มพาเนลโดยใช้การใช้งาน mojarra-1.2_15
James McMahon

3
ภาคผนวกหรือตั้งค่าแอตทริบิวต์ ID ถ้าฉันไม่ทำเช่นนี้มันก็จะปรากฏใน HTML โดยไม่มีแท็ก DIV ล้อมรอบ
James McMahon

1
เราไม่ควรใช้divแท็กทันทีหรือ ถ้ามีปัญหาอาจเกิดอะไรขึ้น?
Rajat Gupta

4
@Marcos แน่นอนคุณสามารถใช้divแท็กได้ แต่ในกรณีนี้ส่วนประกอบนี้จะไม่เป็นส่วนหนึ่งของโครงสร้างคอมโพเนนต์ JSF (กล่าวคือไม่มีในโค้ด Java) นอกจากนั้นคุณจะไม่สามารถรีเฟรชได้โดยตรงโดยใช้ Ajax (ยกเว้นแน่นอนถ้าคุณทำการรีเฟรชโดยตรงในโค้ด JavaScript ของคุณ)
Romain Linsolas

1
คำตอบคือความจริงเพียงครึ่งเดียว ดูที่นี่docs.oracle.com/javaee/5/javaserverfaces/1.2/docs/tlddocs/h/...หรือนี่docs.oracle.com/javaee/6/javaserverfaces/2.1/docs/vdldocs/... ข้อมูลที่สำคัญคือคุณต้องมีอย่างใดอย่างหนึ่งstyleหรือstyleClassแอตทริบิวต์เพื่อdivให้เกิดขึ้น ... ซึ่งทำให้เรื่องราวแปลก ๆ อย่าง IMHO: ธรรมดา<h:panelGroup layout="block">จะทำให้ a <span>? มันไม่สมเหตุสมผลสำหรับฉัน
Kawu

18

ใน JSF 2.2 สามารถใช้องค์ประกอบpassthrough :

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

ข้อกำหนดคือต้องมีอย่างน้อยหนึ่งแอตทริบิวต์ในองค์ประกอบโดยใช้ jsf namespace


14

นอกเหนือจาก<h:panelGroup>องค์ประกอบ (ซึ่งทำให้ฉันประหลาดใจเล็กน้อย) คุณสามารถใช้<f:verbatim>แท็กที่ตั้งค่าพารามิเตอร์ Escape falseเพื่อสร้างมาร์กอัปที่คุณต้องการได้ ตัวอย่างเช่น:

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

โปรดจำไว้ว่ามันดูหรูหราน้อยกว่าpanelGroupโซลูชันเล็กน้อยเนื่องจากคุณต้องสร้างสิ่งนี้สำหรับทั้งแท็กเริ่มต้นและแท็กสิ้นสุดหากคุณต้องการรวมโค้ด JSF ของคุณด้วยdivแท็ก

หรืออีกวิธีหนึ่งคือ UI Frameworks หลัก ๆ ทั้งหมดมีdivแท็กคอมโพเนนต์หรือคุณอาจเขียนเองก็ได้


4
เราไม่ควรใช้แท็ก div ในทันทีหรือไม่? ถ้ามีปัญหาอาจเกิดอะไรขึ้น?
Rajat Gupta

3

คุณสามารถใช้ส่วนประกอบ tomahawk ของ myfaces

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


ฉันเอาโทมาฮอว์กออกจากโครงการด้วยซ้ำ หลังจากนั้นโครงการก็เร็วขึ้นมาก! ฉันไม่แนะนำให้ใช้โทมาฮอว์ก!
marcel

1
ฉันตอบคำถามนี้ในปี 2554 ตอนนี้ฉันใช้ไพรม์เฟซและรู้สึกดีมาก
แจ็คจิ

-3

ฉันคิดว่าคุณสามารถใช้แท็กคำต่อคำได้เนื่องจากในแท็กนี้เราใช้แท็ก HTML ใดก็ได้


อย่างจริงจัง? ทำไม? แท็กคำต่อคำเป็นสิ่งที่เกี่ยวข้องในยุค jsp ในยุค facelets (10 ปีแล้ว?) ส่วนใหญ่ไม่จำเป็นแน่นอนในกรณีนี้
Kukeltje
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.