0

这是一个更具有实用意义的理论问题。

我有一个页面,用户可以在其中搜索人。作为搜索的结果,将有一个符合搜索条件的人员列表。除了每条记录(每个人)之外,还会有一个链接将用户带到另一个页面,其中包含有关用户想要了解更多信息的人的更多详细信息。

到目前为止,一切都很好。我的困境是在现实世界的情况下,用户可能想要同时检查几个人。我不确定如何在不使用 JSF 请求 Bean 的情况下实现。情况是这样的:

  1. 用户点击(实际上是右击“在另一个选项卡中打开链接”)查看一个人的详细信息 1
  2. 用户点击查看另一个人的详细信息 2.
  3. 用户对人 1 进行更改
  4. 用户对人 2 进行更改。
  5. 用户返回 person1-detail 页面并再次进行更改

是否可以使用 ViewScoped Beans 中支持的人员详细信息来实现页面?如果是这样,从搜索结果页面导航到 detail-person 页面的请求应该是 post-request 吗?还有其他解决方法吗?闪光范围?对话?

4

1 回答 1

0

保留列表以@ViewScoped使人员可点击,并使用漂亮的覆盖组件在他们单击链接时显示详细信息。PrimeFaces,最流行的框架应该有几个选项,就像其他的一样。如果您的用户喜欢这样滚动,请包含一个按钮/链接以使用 target = _blank 打开。

支持带有详细信息的新窗口的 bean 可以@RequestScoped使用注入来获取正确的人员实例。这当然需要您保存点击的内容,Person selectedPerson;或者您​​可以将索引作为请求参数附加到该人并使用 getPersons.get(selectedPerson);

如果您选择第二种解决方案,您可能想查看<f:metadata>、<f:viewParam> 和 <f:viewAction> 可以用于什么?`

另外,考虑使用 CDI。Deltaspike 即将发布的第四个版本将提供几个很棒的范围。例如,如果您想跟踪每个新窗口中的单独状态@WindowScoped可能会很好。

祝你好运

于 2013-05-16T16:40:32.003 回答