这是一种具有实用意义的理论问题。
我有一个页面,用户可以在其中搜索人员。搜索结果将会有符合搜索条件的人员列表。 除了每条记录(每个人)之外,还会有一个链接将用户带到另一个页面,其中包含有关用户想要了解的更多信息的更多详细信息。
到目前为止一切顺利。我的困境在现实世界中,用户可能想要同时检查几个人。我不确定如何在不使用JSF Request Beans的情况下实现。 情况是这样的:
是否可以在ViewScoped Beans中实现支持人员详细信息的页面?如果是这样,从搜索结果页面导航到详细信息人页面的请求应该是后请求吗?还有其他解决方法吗? Flash-Scoped?谈判?
答案 0 :(得分:0)
将列表保留在@ViewScoped
中,使人员可以点击并使用漂亮的叠加组件,以便在他们点击链接时显示详细信息。 PrimeFaces,最流行的框架应该有几个选项,其他的。如果您的用户愿意像这样滚动,请包含一个用于打开target = _blank的按钮/链接。
支持新窗口的bean的详细信息可能是@RequestScoped
并使用注入来获取正确的人员实例。这当然要求您保存点击的内容,即Person selectedPerson;
,或者您可以将索引附加到该人作为请求参数并使用getPersons.get(selectedPerson);
如果您选择第二个解决方案,可能需要查看What can <f:metadata>, <f:viewParam> and <f:viewAction> be used for?`
另外,请考虑使用CDI。来自Deltaspike的第四个版本即将推出,将提供几个很好的范围。例如,如果您想在每个新窗口中跟踪单独的状态,@WindowScoped
可能会很好。