2

如果没有在 JDK 1.5 中设置 ID,绑定值不会从可编辑数据表中更新。但是在 JDK 1.6 中不设置 ID 也一样。有谁知道为什么?谢谢

代码,Bean部分

    public void setDataTable(HtmlDataTable dataTable) {
    this.dataTable = dataTable;
}

public HtmlDataTable getDataTable() {
    if (dataTable == null)
        setEditableDataTable();
    return dataTable;
}

private void setEditableDataTable() {

    dataTable = new HtmlDataTable();
    dataTable.setValueBinding("value",
            createValuebinding("#{testBean.stringList}"));
    dataTable.setVar("items");
    for (int i = 0; i < getDatastable().get(i).size(); i++) {

        UIColumn column = new UIColumn();
        dataTable.getChildren().add(column);

        HtmlOutputText header = new HtmlOutputText();
        header.setValue("Header "+i);
        column.setHeader(header);

        HtmlInputText input = new HtmlInputText();
        input.setValueBinding("value", createValuebinding("#{items[" + i
                + "]}"));
        column.getChildren().add(input);

    }

}

private ValueBinding createValuebinding(String valueExpression) {
    return FacesContext.getCurrentInstance().getApplication()
            .createValueBinding(valueExpression);
}

JSP部分

   <h:dataTable binding="#{testBean.dataTable}" >
                </h:dataTable>

解决方案

   Give id for the datatable
4

0 回答 0