我正在创建一个简单的 JSF 应用程序,它只有一个 JSP 页面(1 个下拉菜单、1 个数据表和 1 个提交按钮)。
当我从下拉列表中选择值时,我用数组列表填充表格以显示表格数据。该表是可编辑的。现在,当我单击提交时,我需要将整个表格放入列表中。为此,我使用了数据表的绑定属性。但问题是从 getValue 返回 null。
请帮我解决这个问题,因为我浪费了很多时间。
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>