Jsf 我期望ui:repeat会创建带有列的表行,但它会在行内创建跨距

Jsf 我期望ui:repeat会创建带有列的表行,但它会在行内创建跨距,jsf,Jsf,我正在使用带有p:rowExpansion的Primefaces p:datatable。我的目标是使用以下xhtml显示行详细信息 <p:dataTable value="#{bilisimArizaBean.kullaniciBilisimArizalariListesi}" var="ariza"> <p:column style="width:4%"> <p:rowToggler /&g

我正在使用带有p:rowExpansion的Primefaces p:datatable。我的目标是使用以下xhtml显示行详细信息

<p:dataTable
        value="#{bilisimArizaBean.kullaniciBilisimArizalariListesi}"
        var="ariza">
        <p:column style="width:4%">
            <p:rowToggler />
        </p:column>
        <p:column headerText="Arıza no">
#{ariza.bilisimArizaId}
</p:column>
        <p:column headerText="">
#{ariza.bilisimArizaTuru.bilisimArizaTuru}
</p:column>
        <p:column>
#{ariza.cihazMarkasi} #{ariza.cihazModeli} #{ariza.cihazSeriNo}
</p:column>
        <p:column>
#{ariza.arizaAciklama}
</p:column>
        <p:rowExpansion>
            <div>
                <p:panelGrid id="display" columns="4" cellpadding="4"
                    style="border:1px;border-color:red;"
                    styleClass=" ui-widget-content grid">
                    <ui:repeat var="ticket" value="#{ariza.bilisimArizaTicket}">
                        <h:outputText value="Gelişme No" />
                        <h:outputText id="gelisme" value="#{ticket.ticketAciklama}" />
                        <h:outputText value="Durum:" />
                        <h:outputText id="durum" value="#{ticket.arizaDurum.durumAdi}" />
                        <br></br>
                    </ui:repeat>
                </p:panelGrid>
            </div>
        </p:rowExpansion>
    </p:dataTable>

#{ariza.bilisimArizaId}
#{ariza.bilisimArizaTuru.bilisimArizaTuru}
#{ariza.cihazMarkasi}{ariza.cihazModeli}{ariza.cihazSeriNo}
#{ariza.arizaAciklama}


我希望它将创建包含p:rowExpansion中的列的表行。但是,ui:repeat生成一个表,其中的行只有一列。和此柱内的跨距。就是

<table>
<tr>
<td><span>data</span><span>data</span><span>data</span></td>
</tr>
<tr>
<td><span>data</span><span>data</span><span>data</span></td>
</tr>
.
.
.
</table>

数据
数据
.
.
.
我期待并想要以下内容

<table>
<tr>
<td>data</td>    <td>data</td>    <td>data</td>
</tr>
<tr>
<td>data</td>    <td>data</td>    <td>data</td>
</tr>
.
.
.
</table>

数据数据
数据数据
.
.
.
在这种情况下,为什么是跨而不是柱?如何在一列中获得列而不是跨距


在您的特定构造中,
中的
不会生成多个JSF组件,每个组件只生成一次HTML。相反,它重用相同的JSF组件,在每次迭代中多次生成HTML输出

这是不对的。这里需要
而不是

例如



这些跨度是不相关的,它们只是来自

我通过硬编码html表生成了我想要的。不过,我想知道跨度的原因。谢谢Balusc,看来我需要深入学习jsf原则,有什么书上的建议吗?
<h:dataTable var="ticket" value="#{ariza.bilisimArizaTicket}">
    <h:column><h:outputText value="Gelişme No" /></h:column>
    <h:column><h:outputText id="gelisme" value="#{ticket.ticketAciklama}" /></h:column>
    <h:column><h:outputText value="Durum:" /></h:column>
    <h:column><h:outputText id="durum" value="#{ticket.arizaDurum.durumAdi}" /></h:column>
</h:dataTable>