【发布时间】:2011-06-30 05:59:08
【问题描述】:
我的 JSF 应用程序中有两种支持 bean:
- 托管 Bean (
@ManagedBean(name="bean")) - 实体 Bean (
@Entity)
应该对它们中的哪些进行限定(请求/会话/视图/应用程序/否)?
我现在将所有 托管 bean 范围化和 实体 bean 没有(过去我也有实体 bean 范围,它似乎与没有范围)。此外,“不”可能意味着实体 bean 是请求范围的。
谢谢你的解释:)
【问题讨论】:
我的 JSF 应用程序中有两种支持 bean:
@ManagedBean(name="bean"))@Entity)应该对它们中的哪些进行限定(请求/会话/视图/应用程序/否)?
我现在将所有 托管 bean 范围化和 实体 bean 没有(过去我也有实体 bean 范围,它似乎与没有范围)。此外,“不”可能意味着实体 bean 是请求范围的。
谢谢你的解释:)
【问题讨论】:
实体 bean 不需要分配 JSF 托管 bean 范围。它们应该被分配为 JSF 托管 bean 的属性。所以基本上,它们将获得与声明为属性的 JSF 托管 bean 相同的范围。 JSF 托管 bean 范围注释仅在 @ManagedBean 类中有效。实体 bean 也不一定要归类为“支持 bean”。它们是更多的“价值对象”。
您可以将其视为对另一个迷你 MVC 中完整 JSF MVC 图片的“V”的进一步划分:JSF 托管 bean 是控制器,实体是模型,XHTML 文件是视图。
【讨论】:
我会说你的 Managed Beans 应该是 scoped 。 而不是实体 bean, 那是假设实体 bean 是 pojhos 并且所有操作都在 托管 Bean。
我正在回答这个 JSF v 1.1
希望这会有所帮助。
【讨论】: