我正在使用 Wicket DefaultDataTable
。它包含一些用户应该在其中输入值的文本字段。该表位于表单中。当我提交表单时,我想掌握所有“行”以便我可以遍历它们。我不想使用 AJAX。
我已经设法将表格绑定(bind)到一个“联系人”对象,并使用一个 EditablePropertyColumn
在我想要的列中显示正确的字段和输入框。
如何获取行项目? dataTable.getDefaultModelObject()
在提交表单时返回 null
。
最佳答案
老实说,听起来您还有其他(更基本的)问题。正如 martin-g 提到的,可编辑属性列使用属性模型,这意味着当提交表单时(如果所有验证等都通过),它将调用该模型上的 setObject,后者又将调用 setFoo(其中“foo"是支持表中该行数据的 POJO 上该列的属性。
您可以(正如 Don 提到的那样)使用访问者来遍历您的表的子项。但是,一般来说,这意味着您做错了其他事情。 Wicket 的编写使您不必从表单提交中提取数据并将其推送到您的 POJO。该模型应该为你做。您不应该在自己周围“推送”数据。
显示一些代码会有所帮助,但还不够:无论您的表从哪里获取数据(某些联系人列表等)- 尝试只从那些相同的对象中提取数据。它应该已经为您填充。如果不是,请发布一些代码 - 特别是在您初始化表及其数据提供程序的地方。
关于java - 如何从 Wicket 数据表中获取所有模型对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8084180/