具有行和列的json数据集的Primefaces动态数据表

时间:2019-09-13 18:41:47

标签: jsf primefaces datatable

我想基于两组数据创建数据表。一个数据集包含标头信息,其他数据集包含标头信息。 这两个数据集都是json数组的形式。 行数据集:

[
  {
    "fname": "Umair",
    "lname": "Baig"
  },
  {
    "fname": "Ali",
    "lname": "Hassan"
  }

]

列数据集:

[
  {
    "header_alias": "fname",
    "label": "First Name"
  },
  {
    "header_alias": "lname",
    "label": "Last Name"
  }

]

行和列数据集都可以变化,并且我有多个列和行数据集。行和列数据集的变化是。它可以有两个以上的标题,并且行相同。 我无法创建一个单一的Pojo类来处理这种类型的数据集。我需要生成动态列和动态行。 请查看我到目前为止创建的代码。 我需要坚持使用primefaces数据表来解决它。我无法转移到其他一些精美的组件套件,例如主要ui数据表可以非常轻松地处理它。 我正在使用的primefaces / jsf类:

org.primefaces.component.column.Column
org.primefaces.component.datatable.DataTable
javax.faces.component.UIOutput

List<Column> columnList = new ArrayList<Column>();
        for (int i = 0; i < uiColumns.size(); i++) {
            final String header = uiColumns.get(i).getHeader().replace("_", " ").toUpperCase();
            Column column = new Column();
            column.setHeaderText(header);
            columnList.add(column);
        }

// Columns component added in datatable
this.getMyDataTable().getChildren().addAll(columnList);

我现在面临的这个问题是,当我尝试追加行数据时,它基本上将所有内容合并为一列。

UIOutput output = new UIOutput();
String value = this.rowsdata.get(i);
// value contains the cell value which will be added as a output Text
output.setValue(value);
uiComponentList.add(output);

List<UIComponent> components =  columnList.get(i).getChildren();
// i index is for iteration over columns of datatable
components.addAll(uiComponentList);

enter image description here

您可以在图片中看到。 UmairAli 附在第一栏中。它应该像第一行中的 Umair 和第二行中的 Ali

0 个答案:

没有答案
相关问题