我想基于两组数据创建数据表。一个数据集包含标头信息,其他数据集包含标头信息。 这两个数据集都是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);
您可以在图片中看到。 UmairAli 附在第一栏中。它应该像第一行中的 Umair 和第二行中的 Ali 。