<p:dataTable><p:columns> 中带有 List<List> 的动态列

Cri*_* A. 4 jsf dynamic-columns primefaces jsf-2

我正在尝试动态地生成dataTable带有列的 a ,因此List<List>Lista 的内部List是我的列的内容时,我有一个 a ,但是当我尝试显示它时,我无法显示太多。

所以,这是我的 Bean 的代码:

@ManagedBean
@javax.faces.bean.ViewScoped
public class Controlador {

   private List<List> estadistico;

   @PostConstruct
   public void inicializar(){
      this.estadistico = new ArrayList<List>();

      this.estadistico.add(  Arrays.asList( new Integer[]{0,1,24})); 
      this.estadistico.add(  Arrays.asList( new Integer[]{5,1,34})); 
      this.estadistico.add(  Arrays.asList( new Integer[]{12,1,4})); 

   }
   //getter's and setter's
}
Run Code Online (Sandbox Code Playgroud)

这就是视图:

<h:form>
    <!-- estadistico is  List<List> -->
    <p:dataTable value="#{controlador.estadistico}" var="lista">
        <!-- lista is List of numbers
             and I suppose that value is each number
         -->
        <p:columns value="#{lista}" var="value" >
               #{value}
        </p:columns>
    </p:dataTable>
</h:form>
Run Code Online (Sandbox Code Playgroud)

我期待一些类似的:

---------------
0     5    12 
---------------
1     1    1
---------------
24    34   4
---------------
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

正确的方法是什么?

Bal*_*usC 5

不能<p:columns value>引用<p:dataTable var>. 从技术上和逻辑上讲,不可能逐行控制列。它们必须按表进行控制。

如果您的模型保证每个嵌套列表具有相同的大小,那么应该这样做:

<p:dataTable value="#{controlador.estadistico}" var="lista">
    <p:columns value="#{controlador.estadistico[0]}" columnIndexVar="i">
        #{lista[i]}
    </p:columns>
</p:dataTable>
Run Code Online (Sandbox Code Playgroud)

另请参阅<p:columns>展示柜