回到同一屏幕时,不会删除Bean值。
我创建用户详细信息并插入数据
我查看数据库中所有可用的列出的用户
我搜索特定的用户
回到创建用户页面时,可以看到搜索到的用户数据
如何从bean中删除旧数据?托管bean在会话范围内。
最佳答案
您有充分的理由为什么要将用户列表放入会话范围的Bean中。这可能会引起一些麻烦,并最终在多用户环境中反映出过时的数据。改为将bean设为@ViewScoped
,并在@PostConstruct
方法中加载所有用户或部分用户。
至于使用会话作用域bean时的一致性,我的猜测是您没有更新当前用户列表。在这种情况下,基本上需要将操作加倍:第一个操作是数据库操作,第二个操作是列表更新操作。就像下面的代码:
public void deleteUser() {
yourEJB.remove(user);
listOfUsers.remove(user);
}
另外,要更新您的UI,请确保通过操作方法返回
void
/ null
进行回发,或者通过在render
属性的<f:ajax>
属性中指定其客户端ID通过AJAX更新所需的组件。 >标签。