gpt4 book ai didi

java - JSF 数据表中的多个页脚行

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:16:56 25 4
gpt4 key购买 nike

我想知道是否有任何方法可以在 h:dataTable(或 t:datatable)中有多个页脚行我想做这样的事情(不编译)

<h:dataTable ... var="row">
<h:column>
<f:facet name="header">
Header
</f:facet>
<h:outputText value="#{row.value}"/>
<f:facet name="footer">
FirstFooter
</f:facet>
<f:facet name="footer">
Second Footer in a new tr
</f:facet>
</h:column>
</h:dataTable>

结果是这样的

<table border=1 style="border:1px solid">
<thead><tr><th>Header</th></tr></thead>
<tbody><tr><td>Data Value 1</td></tr>
<tr><td>Data Value 2</td></tr>
<tr><td>Data Value ...</td></tr>
<tr><td>Data Value n</td></tr>
</tbody>
<tfoot>
<tr><td>FirstFooter</td></tr>
<tr><td>Second Footer in a new tr</td></tr>
</tfoot>
</table>

有什么想法可以最好地实现这一目标吗?谢谢。

编辑:如果我可以避免使用自定义控件/自定义渲染器,那就太好了

最佳答案

我最终使用的解决方案是与 t:datatable(数据表的战斧扩展)关联的自定义渲染器

public class HtmlMultiHeadTableRenderer extends HtmlTableRenderer

我只需要覆盖一个方法

protected void renderFacet(FacesContext facesContext,   
ResponseWriter writer, UIComponent component, boolean header)

我在其中查找名称为 header、header2、header3 ... headerN 的方面(一旦缺少一个,我就停止查找),页脚也是如此。这让我可以做类似的代码

<h:dataTable ... var="row">
<h:column>
<f:facet name="header">
Header
</f:facet>
<f:facet name="header2">
A second Tr with th's
</f:facet>
<h:outputText value="#{row.value}"/>
<f:facet name="footer">
FirstFooter
</f:facet>
<f:facet name="footer2">
Second Footer in a new tr
</f:facet>
</h:column>
</h:dataTable>

这花了大约一天的时间(还有一些其他扩展,比如允许基于组的 colspans)来编码和记录,

关于java - JSF 数据表中的多个页脚行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/751860/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com