我正在创建一个只有一个JSP页面(1个下拉列表,1个数据表提交按钮)的简单JSF应用程序。JSF Datatable Binding无法正常工作
当我从下拉列表中选择值时,我使用arraylist填充表格以显示表格数据。该表是可编辑的。现在当我点击提交时,我需要将整个表格放入列表中。为此,我使用了datatable的binding属性。但问题是null从getValue返回。
请帮我解决这个问题,因为我浪费了很多时间。
class UserBean {
.....
private HtmlDataTable _dataTable;
public void setDataTable(HtmlDataTable dataTable)
{
this._dataTable = dataTable;
}
public HtmlDataTable getDataTable()
{
return _dataTable;
}
...................
public String submit() {
List<User> userDetails = (ArrayList<User>)((HtmlDataTable)getDataTable()).getValue();
System.out.println(userDetails);
return "";
}
}
// JSP页面
<h:dataTable id="erdatatable"
var="row" value="#{UserBean.userDetails}"
binding="#{UserBean.dataTable}">
....
</h:dataTable>
<h:commandButton value="Submit" action="#{UserBean.submit}"></h:commandButton>
// faces.config
<managed-bean>
<managed-bean-name>UserBean</managed-bean-name>
<managed-bean-class>com.datatable.UserBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
// web.xml中
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
非常感谢...它得到解决..谢谢非常多:) – Soheb 2013-04-11 08:30:44