Richfaces3.3.Finalを使用してjsf1.2レガシープロジェクトを動作させようとしています。
動的列を使用してデータテーブルを作成しようとしていますが、エラーが発生します:
Caused by: javax.el.PropertyNotFoundException: /index.xhtml @44,58 value="#{results[ind].columnName}": Property '0' not found on type ..../TableBean
私は基本的にこのページの例に従っています-http://livedemo.exadel.com/richfaces-demo/richfaces/columns.jsf?tab=usage&cid= 278645が、バッキングBeanコードは表示されません。
これが私の関連コードです
<rich:dataTable id="resultsTable" value="#{tableBacking.results}" var="results">
<f:facet name="header">
<h:outputText value="Results" />
</f:facet>
<rich:column>
<f:facet name="header">
<h:outputText value="First Columns" />
</f:facet>
</rich:column>
<rich:columns value="#{tableBacking.columns}" var="columns" index="ind" id="column#{ind}">
<f:facet name="header">
<h:outputText value="#{columns.header}" />
</f:facet>
<h:outputText value="#{results[ind].columnName}" />
</rich:columns>
</rich:dataTable>
バッキングビーン
public class TableLookupBacking {
private List<ColumnModel> columns = null;
private List<TableBean> results = null;
public List<ColumnModel> getColumns() {
if(columns == null) {
columns = new ArrayList<ColumnModel>();
columns.add(new ColumnModel("header", "Property"));
columns.add(new ColumnModel("header2", "Property"));
columns.add(new ColumnModel("header3", "Property"));
System.out.println("columns.size = "+columns.size());
}
return columns;
}
public List<TableBean> getResults() {
if(results == null) {
results = new ArrayList<TableBean>();
results.add(new TableBean("id"));
results.add(new TableBean("name"));
System.out.println("results.size = "+results.size());
System.out.println("results.0 = "+results.get(0).getColumnName());
}
return results;
}
public void setResults(ArrayList<TableBean> results) {
this.results = results;
}
public void setColumns(ArrayList<ColumnModel> columns) {
this.columns = columns;
}
}
TableBean
public class TableBean {
private String columnName;
public TableBean(String columnName) {
this.columnName = columnName;
}
public String getColumnName() {
return columnName;
}
public void setColumnName(String columnName) {
this.columnName = columnName;
}
}