回到同一屏幕时,不会删除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更新所需的组件。 >标签。

07-28 03:38
查看更多