使用请求范围的bean通过AJAX向h:dataTable添加一行而不会丢失行数据

时间:2010-09-03 10:52:03

标签: java ajax jsf datatable jsf-2

我认为标题告诉了所有:我想通过AJAX向dataTable添加一行。数据表具有用户可以放置文本的输入字段。就这么简单,这是一个非常常见的案例。

对于会话范围的bean,这没有问题,因为同一个bean一次又一次地更新。但是,我想在请求范围内执行此操作。对于每个请求,我想我想创建一个新bean并用我的表单中的值填充它。然后我希望我的commandButton的{​​{1}}添加一个新行,最后像往常一样通过AJAX呈现action

问题是我不知道如何让JSF用dataTable组件中的当前数据填充新创建的request-bean?

a similar question被问及answered。但是,该解决方案似乎每次刷新时都会重新加载dataTable的内容,并为新插入的行手动插入空元素,如下所示:

dataTable

对我来说,似乎这种方法还会消除用户对行(新旧)的可能更改......如果他没有先保存它们。

任何指针?

1 个答案:

答案 0 :(得分:3)

您应该考虑使用新的JSF 2.0 视图范围。这位于请求和会话范围之间。只要您正在交互(提交和导航到)同一视图,此范围就会存在。这非常适合特定的功能要求。

另见