繁体   English   中英

用于生成列的Primefaces DataTable var不显示任何行

[英]Primefaces DataTable var used to generate Columns does not display any row

我正在使用Primefaces DataTable,它使用提供列表的bean的值。 然后我们从列表中为每个项目显示一行。

我还有另一个列表,用于显示每列的每行中的值。

以下示例非常有效。

使用豆子的价值观

<p:dataTable var="item" value="#{bean.items}">

  <p:columns var="value" value="#{bean.values}">

     <p:outputLabel value="#{value}"/> <!--[WORKS FINE !!!]-->

   </p:columns>

</p:dataTable>

如果不使用bean中的值,我尝试使用项目本身的值,它不显示任何内容!

使用来自其自身的价值观

<p:dataTable var="item" value="#{bean.items}">

  <p:columns var="value" value="#{item.values}">

     <p:outputLabel value="#{value}"/> <!--[DOES NOT DISPLAY ANYTHING !!!]-->

   </p:columns>

</p:dataTable>

bean是以下的,当使用那里的值时,它在datatable中显示行。

@Named("bean")
@ViewScoped
public class Bean implements Serializable 
{
    private static final long serialVersionUID = 1L;

    private List<Item> _items = new LinkedList<>();
    private List<String> _values = new LinkedList<>();

    public List<Item> getItems() {return _items;}
    public void setItems(List<Item> items) {_items = items;}

    public List<String> getValues() {return _values;}
    public void setValues(List<String> values) {_values = values;}

    //[BUILD]
    @PostConstruct public void init()
    {
       _items.add(new Item());
       _items.add(new Item());
       _items.add(new Item());
    }
}

Item对象如下所示,从那里使用值时不显示行。

public class Item
{
  private List<String> _values = new LinkedList<>();

  public List<String> getValues() {return _values;}
  public void setValues(List<String> values) {_values= values;}

  //[BUILD]
  public Item()
  {
    _values.add("value0");
    _values.add("value1");
    _values.add("value2");
  }
}

为什么primeface数据表在这种情况下不显示任何行我使用来自外部对象的值列表,如下所示?

工作正常 !

<p:dataTable var="item" value="#{bean.items}">
  <p:columns var="value" value="#{bean.values}"><!--[USING BEAN LIST<STRING> -->
     <p:outputLabel value="#{value}"/>

不工作!

<p:dataTable var="item" value="#{bean.items}">
  <p:columns var="value" value="#{item.values}"><!--[USING ITEM LIST<STRING> -->
     <p:outputLabel value="#{value}"/>

从展示文件https://www.primefaces.org/showcase/ui/data/treetable/columns.xhtml中可以看出,列(以及列数)不得取决于当前项目。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM