我尝试使用dinamycally列生成dataTable
,因此我List<List>
当List
内的List
是我的专栏内容时,但是当我尝试展示时,我无法显示。
所以,这是我的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
}
这就是观点:
<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>
我期待一些像:
---------------
0 5 12
---------------
1 1 1
---------------
24 34 4
---------------
我做错了什么?
正确的方法是什么?
答案 0 :(得分:4)
<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>
另请参阅<p:columns>
showcase。