java - 启动多个新窗口但保持当前 View 处于 Activity 状态

标签 java jsf-2

我有一个员工 session Bean,其中包含同一类的相关员工 Bean 的列表。我的用户需要能够查看“主要”员工,并从该员工生成多个浏览器窗口来显示相关员工的信息,但保持“主要”或“根”员工 View 处于 Activity 状态,以便他们可以从那里继续工作。

我认为当前发生的情况是,JSF 将打开一个新窗口并渲染相关员工,但随后会丢失原始窗口/ View 的跟踪,因此,如果您单击命令链接或从原始窗口运行任何内容(在使用命令链接中的目标属性生成新窗口之后),第二个操作将不会运行或调用 session bean 中的任何方法,除了重新加载页面之外,它似乎不会执行任何操作。我相信是因为您尝试从不再注册的旧 JSF View 运行操作,所以当框架收到来自这个过时 View 的请求时,它必须注册?也许?

本质上,我试图为同一用户激活同一 session Bean 类型的多个显示,并将每个 session Bean View 附加到单独的浏览器窗口。

如果您有任何想法,请告诉我。或者是否有更好的方法来做到这一点。

最佳答案

抱歉回复晚了。

我通过使用命令链接调用请求 bean 方法(并在新窗口中打开它)解决了这个问题。这允许我打开多个浏览器窗口(每个窗口都是对请求 bean 的新调用),而不会影响我的 session bean“主”员工 bean。然后,用户可以在多个窗口中同时查看多个员工。我的部分问题与对 JSF 的误解有关。我一次只能在 session 中拥有一个“员工” session bean,因此当我尝试使用不同的员工生成多个浏览器窗口时,它们都引用同一个 session 员工 bean,这是行不通的。 JSF 将附加到打开的新窗口,并且不再了解原始打开的窗口。

无论如何,要做这样的事情,我建议每次打开新窗口查看新员工时都会实例化新的请求 bean。

抱歉,由于政策原因,我无法发布任何代码

关于java - 启动多个新窗口但保持当前 View 处于 Activity 状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9120083/

相关文章:

java - 如何在 Facelets 中使用循环

java - 渲染到 JPanel 的最快方法是什么?

java - Apache CXF 2.4.6 到 2.5.3 升级

java - 使用带有空 ResultSet 的 JDBC 的临时表

java - 获取 selectOneMenu 选定值

java - 将 jquery datepicker 集成到 jsf 中

java - 在JAVA/GWT中读取Word文件

java - 如何解决recyclerview中按钮自动点击的问题?这是一个错误吗?

java - 在一个浏览器中使用带有多个选项卡的 JSF

java - 在 getAsObject 中,arg2 作为 null 传递