1

我正在尝试在 JSF 数据表上实现与具有嵌套数据表的支持 bean 值的绑定,该嵌套数据表与当前数据行的值绑定,请参见以下代码:

<h:form prependId="false">
    <h:dataTable  binding="#{tableBean.mainDataTable}" var="row" >
            <h:column>
                <h:dataTable binding="#{row.nestedDataTable}" />
            </h:column>
    </h:dataTable>
</h:form>

这些是支持的 bean 和数据:

@ManagedBean
@SessionScoped
public class TableBean implements Serializable{
    private HtmlDataTable mainDataTable;
    private List<TableBeanData> tableBeanDataLst;


    public TableBean() {
        tableBeanDataLst = new ArrayList<TableBeanData>();
        DataModel<TableBeanData> mainDataModel =new  ListDataModel<TableBeanData>(tableBeanDataLst);
        mainDataTable = new HtmlDataTable();
        mainDataTable.setValue(mainDataModel);
    }

    public HtmlDataTable getMainDataTable() {
        return mainDataTable;
    }

    public void setMainDataTable(HtmlDataTable mainDataTable) {
        this.mainDataTable = mainDataTable;
    }

    public List<TableBeanData> getTableBeanDataLst() {
        return tableBeanDataLst;
    }

    public void setTableBeanDataLst(List<TableBeanData> tableBeanDataLst) {
        this.tableBeanDataLst = tableBeanDataLst;
    }
}



public class TableBeanData implements Serializable{
     private HtmlDataTable nestedDataTable;

     public TableBeanData (){
         nestedDataTable = new HtmlDataTable();
     }
    public HtmlDataTable getNestedDataTable() {
        return nestedDataTable;
    }

    public void setNestedDataTable(HtmlDataTable nestedDataTable) {
        this.nestedDataTable = nestedDataTable;
    }
}

但我得到一个未找到属性的异常:

/index.xhtml @17,69 binding="#{row.nestedDataTable}": Target Unreachable, indentified 'row' resolved to null

我不太明白,因为我正在初始化构造函数中的数据表。

如何解决此类错误以允许表、嵌套表和数据绑定的这种配置?

4

0 回答 0