我有一个情况,我有一个带有列表的会话 bean,这个列表显示在 html 数据表中。当用户从浏览器或普通 href 中点击 url 时,我必须显示所有记录。还可以搜索数据,我必须在其中显示过滤后的列表。现在,在用户进行搜索后,列表包含过滤记录,然后他将页面留给其他人,现在如果用户点击 url 或使用菜单返回此页面,因为我有这个列表在会话 bean 中,我仍然有过滤列表。
由于 JSF 1.1 或 2.0 preRenderView 概念中没有默认操作,因此很难清除列表并再次获取未过滤的数据(所有结果)。甚至 getList() 方法中的技巧也无法完成任务。
我计划使用阶段侦听器,因为当用户通过浏览器中的 href 或 url 访问页面时,调用应用程序阶段不会发生。我可以在我的会话 bean 和 getList() 中切换布尔变量,我可以执行一些技巧来检查它是 url、href 命中还是命令按钮。
希望我已经说清楚了。简而言之,我必须在我的 bean 中确定请求是直接来自 href、浏览器还是操作。如果搜索操作过滤数据表的记录,如果不保留列表缓存,只要不进行搜索就一直显示它。
请指导我是否以正确的方式做事或想太多,或者是否可以以更有效的方式完成。
提前致谢。Well 平台是 weblogic 门户 10.3 中的 jsf 1.1 .....