Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 显示带有Primefaces数据表的嵌套列表_Java_List_Jsf_Datatable_Primefaces - Fatal编程技术网

Java 显示带有Primefaces数据表的嵌套列表

Java 显示带有Primefaces数据表的嵌套列表,java,list,jsf,datatable,primefaces,Java,List,Jsf,Datatable,Primefaces,我在将字符串显示为行的标题和字符串列表时遇到问题,这是标题的属性。不幸的是,数据表没有显示。我想在以后使用p:columns对数据进行排序和筛选。在Primefaces数据表中显示嵌套列表的正确方法是什么 我的豆豆: public class MyBean implements Serializable { private List<TableData> tableData = new ArrayList<TableData>(); public void fillD

我在将字符串显示为行的标题和字符串列表时遇到问题,这是标题的属性。不幸的是,数据表没有显示。我想在以后使用p:columns对数据进行排序和筛选。在Primefaces数据表中显示嵌套列表的正确方法是什么

我的豆豆:

public class MyBean implements Serializable {

private List<TableData> tableData = new ArrayList<TableData>();

public void fillData(){
this.tableData.add(new TableData("Key1", valueList));
this.tableData.add(new TableData("Key2", valueList2));
this.tableData.add(new TableData("Key3", valueList3));
...
...
...
}
  public List<TableData> getTableData() {
    return tableData;
  }

  public void setTableData(List<TableData> tableData) {
    this.tableData = tableData;
  }
}
公共类MyBean实现可序列化{
private List tableData=new ArrayList();
公共数据(){
this.tableData.add(新的tableData(“键1”,值列表));
这个.tableData.add(新的tableData(“键2”,valueList2));
这个.tableData.add(新的tableData(“Key3”,valueList3));
...
...
...
}
公共列表getTableData(){
返回表格数据;
}
公共无效setTableData(列表tableData){
this.tableData=tableData;
}
}
我的模型:

public class TableData {

  private String key;
  private List<String> values = new ArrayList<String>();

  public TableData(String key, List<String> values) {
    this.key = key;
    this.values = values;
  }

  public String getKey() {
    return key;

  }

  public void setKey(String key) {
    this.key = key;
  }

  public List<String> getValues() {
    return values;
  }

  public void setValues(List<String> values) {
    this.values = values;
  }

}

公共类TableData{
私钥;
私有列表值=新的ArrayList();
公共表数据(字符串键、列表值){
this.key=key;
这个值=值;
}
公共字符串getKey(){
返回键;
}
公共无效设置键(字符串键){
this.key=key;
}
公共列表getValues(){
返回值;
}
公共void设置值(列表值){
这个值=值;
}
}
我的.xhtml

<p:dataTable value="#{myBean.tableData}" var="data">
  <p:columns value="#{data.values}" var="value">
        <f:facet name="header">
            <h:outputText value="#{data.key}" />
        </f:facet>
        <h:outputText value="#{value}" />
  </p:columns> 
</p:dataTable>

帮助我解决了很多问题。我的问题是,我使用了错误的数据结构。

不是
{data.key}
必须是
{value.key}
作为p:columns的内部,不确定是否可以引用外部数据变量?不,因为{data.values}是我的TableData类之外的列表,所以值中没有键。