Jsf datatable中元素的自定义呈现

Jsf datatable中元素的自定义呈现,jsf,datatable,uirepeat,Jsf,Datatable,Uirepeat,我在一个arraylist中有n个元素,我想用(n/3)X 3格式的表格(通过单次迭代)显示所有这些元素,并分别显示单选按钮的数量,如 <table> <tbody> <tr> <td><input type="radio" name="category1" id="category1" value="1"></td> <td><input type="radio" name="category1"

我在一个arraylist中有n个元素,我想用(n/3)X 3格式的表格(通过单次迭代)显示所有这些元素,并分别显示单选按钮的数量,如

<table>
<tbody>
<tr>
  <td><input type="radio" name="category1" id="category1" value="1"></td>
  <td><input type="radio" name="category1" id="category1" value="2"></td>
  <td><input type="radio" name="category1" id="category1" value="3"></td>
</tr>
<tr>
  <td><input type="radio" name="category1" id="category1" value="4"></td>
  <td><input type="radio" name="category1" id="category1" value="5"></td>
  <td><input type="radio" name="category1" id="category1" value="6"></td>
</tr>
...
<tr>
  <td><input type="radio" name="category1" id="category1" value="n"></td>
  <td></td>
  <td></td>
</tr>
</tbody>
</table>

...

请帮助

您可以使用
h:panelGrid
c:forEach

<h:panelGrid columns="3">
    <c:forEach items="#{myBean.list}"  var="item">
        <h:outputText value="#{item}" />
    </c:forEach>
</h:panelGrid>

它将呈现一个


1.
2.
3.
4.
5.
6.
...

您可以只使用
h:panelGrid
c:forEach

<h:panelGrid columns="3">
    <c:forEach items="#{myBean.list}"  var="item">
        <h:outputText value="#{item}" />
    </c:forEach>
</h:panelGrid>

它将呈现一个


1.
2.
3.
4.
5.
6.
...

您可以只使用
h:panelGrid
c:forEach

<h:panelGrid columns="3">
    <c:forEach items="#{myBean.list}"  var="item">
        <h:outputText value="#{item}" />
    </c:forEach>
</h:panelGrid>

它将呈现一个


1.
2.
3.
4.
5.
6.
...

您可以只使用
h:panelGrid
c:forEach

<h:panelGrid columns="3">
    <c:forEach items="#{myBean.list}"  var="item">
        <h:outputText value="#{item}" />
    </c:forEach>
</h:panelGrid>

它将呈现一个


1.
2.
3.
4.
5.
6.
...


应该可以,但是当您有
ui:repeat
时,为什么要使用
c:forEach
?谢谢大家,我试过了,但没有满足我的要求。实际上我必须渲染收音机来代替这些1,2,3。。。N但如果我基于c:forEach这样做的话,一个单选按钮本身被分成3列(意味着一行1个单选按钮被3列分割)。然而,我需要在一行中呈现3个单选按钮(表示在3列中)@tt_dev ui:repeat本身是一个组件,而c:foreach是一个标记处理程序。在本例中,如果使用ui:repeat而不是c:foreach,那么panelgrid只有一个子项(ui:repeat本身)。因此,它将呈现网格第一列中的所有内容。但是,您当然可以使用ui:repeat,但是您必须手动创建网格。@Krishnan答案完全满足您在原始问题中提到的要求。如果你有不同的要求,那么在原来的帖子中澄清你的问题。e、 g.我不明白你所说的“一个按钮被分成三列”是什么意思?@stg根据你的要求,我的实际要求在原来的帖子中更新了。提前感谢应该可以工作,但是当您有
ui:repeat
时,为什么要使用
c:forEach
?谢谢大家,我试过了,但没有满足我的要求。实际上我必须渲染收音机来代替这些1,2,3。。。N但如果我基于c:forEach这样做的话,一个单选按钮本身被分成3列(意味着一行1个单选按钮被3列分割)。然而,我需要在一行中呈现3个单选按钮(表示在3列中)@tt_dev ui:repeat本身是一个组件,而c:foreach是一个标记处理程序。在本例中,如果使用ui:repeat而不是c:foreach,那么panelgrid只有一个子项(ui:repeat本身)。因此,它将呈现网格第一列中的所有内容。但是,您当然可以使用ui:repeat,但是您必须手动创建网格。@Krishnan答案完全满足您在原始问题中提到的要求。如果你有不同的要求,那么在原来的帖子中澄清你的问题。e、 g.我不明白你所说的“一个按钮被分成三列”是什么意思?@stg根据你的要求,我的实际要求在原来的帖子中更新了。提前感谢应该可以工作,但是当您有
ui:repeat
时,为什么要使用
c:forEach
?谢谢大家,我试过了,但没有满足我的要求。实际上我必须渲染收音机来代替这些1,2,3。。。N但如果我基于c:forEach这样做的话,一个单选按钮本身被分成3列(意味着一行1个单选按钮被3列分割)。然而,我需要在一行中呈现3个单选按钮(表示在3列中)@tt_dev ui:repeat本身是一个组件,而c:foreach是一个标记处理程序。在本例中,如果使用ui:repeat而不是c:foreach,那么panelgrid只有一个子项(ui:repeat本身)。因此,它将呈现网格第一列中的所有内容。但是,您当然可以使用ui:repeat,但是您必须手动创建网格。@Krishnan答案完全满足您在原始问题中提到的要求。如果你有不同的要求,那么在原来的帖子中澄清你的问题。e、 g.我不明白你所说的“一个按钮被分成三列”是什么意思?@stg根据你的要求,我的实际要求在原来的帖子中更新了。提前感谢应该可以工作,但是当您有
ui:repeat
时,为什么要使用
c:forEach
?谢谢大家,我试过了,但没有满足我的要求。实际上我必须渲染收音机来代替这些1,2,3。。。N但如果我基于c:forEach这样做的话,一个单选按钮本身被分成3列(意味着一行1个单选按钮被3列分割)。然而,我需要在一行中呈现3个单选按钮(表示在3列中)@tt_dev ui:repeat本身是一个组件,而c:foreach是一个标记处理程序。在本例中,如果使用ui:repeat而不是c:foreach,那么panelgrid只有一个子项(ui:repeat本身)。因此,它将呈现网格第一列中的所有内容。但是,您当然可以使用ui:repeat,但是您必须手动创建网格。@Krishnan答案完全满足您在原始问题中提到的要求。如果你有不同的要求,那么在原来的帖子中澄清你的问题。e、 g.我不明白你所说的“一个按钮被分成三列”是什么意思?@stg根据你的要求,我的实际要求在原来的帖子中更新了。提前谢谢