我有一个员工会话bean,它有一个相同类的相关员工bean列表。我的用户需要能够查看“主要”员工,并从该员工生成多个浏览器窗口以显示相关员工的信息,但保持“主”或“根”员工视图处于活动状态,以便他们可以继续在那里工作。
我相信目前正在发生的事情是JSF将打开一个新窗口并呈现相关员工,但随后失去对原始窗口/视图的跟踪,因此如果您单击命令链接或从原始窗口运行任何内容(在您拥有之后)使用命令链接中的target属性生成新窗口)第二个操作将不会运行或调用会话bean中的任何方法除了重新加载页面之外它似乎什么都不做。我相信因为你试图从一个不再注册的旧JSF视图中运行一个动作,所以当框架收到来自这个陈旧视图的请求时,它必须注册?可能?
本质上,我试图为同一个用户激活同一会话bean类型的多个显示,并将每个会话bean视图附加到不同的浏览器窗口。
如果您有任何想法,请告诉我。或者如果有更好的方法可以做到这一点。
答案 0 :(得分:1)
对不起,迟到了。
我通过使用命令链接调用请求bean方法(并在新窗口中打开它)解决了这个问题。这允许我打开多个broswer窗口(每个都是对请求bean的新调用),而不会影响我的会话bean“main”employee bean。然后,用户可以在多个窗口中一次查看多个员工。我的部分问题与对JSF的误解有关。我只能在会话中同时拥有一个“员工”会话bean,所以当我尝试使用不同的员工生成多个浏览窗口时,他们都引用了相同的会话员工bean,这将无效。 JSF将附加到已打开的新窗口,不再知道原始打开窗口。
无论如何要做这样的事情,我建议每次打开一个新窗口查看新员工时,都会实例化一个新的请求bean。
很抱歉,由于政策我无法发布任何代码