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
コンストラクタでデータテーブルを初期化しているのでよくわかりません。
このタイプのエラーを解決して、テーブル、ネストされたテーブル、およびデータ バインディングの構成を許可するにはどうすればよいですか?