我有3个不同的页面,我使用用户列表。
第一页包含来自一个会话范围托管bean的用户的dataTable。在该页面上,我可以更改选定的用户详细信息。
第二页还包含带有用户的dataTable,但来自不同的会话范围bean。在此页面上,我还从dataTable(用户列表)和数据库中删除了用户。
我意识到这不是个好主意,因为如果我对一个用户进行了更改,那么我删除用户的页面就不会显示这些更改。
应用程序范围bean是否仅包含用户列表?
答案 0 :(得分:1)
应用程序范围bean是否仅包含用户列表?
不,它不会解决你所面临的问题而且你毕竟会遇到并发问题,因为webapplication通常是一个多用户环境,你需要将所有内容synchronized
设置为防止讨厌的ConcurrentModificationException
和喜欢。应用程序范围的bean即在webapp的所有用户之间共享。在应用程序范围的bean中保存请求/视图作用域数据是没有意义的,即使会话范围太宽。
因此,您的问题是会话范围太广。您想在每个新的GET请求上刷新列表。最好的做法是将bean放在请求中,或者更好地查看范围。编辑用户详细信息的bean可能是另一个,但是当你不想让编辑页面成为可收藏的GET请求时,这又可以很容易地成为第一个bean的一个属性。