1

有没有办法以一种可以发送和接收自定义事件的方式将 ManagedBeans 彼此分离——可能是通过(很酷的)FacesContext?!我不想将 Beans 作为 ManagedProperty 注入,以减少直接依赖关系。不幸的是,@ListenerFor 和所有这些新东西只适用于组件和渲染器,而且似乎完全是错误的方法。

熟悉 Adob​​e Flex 事件机制的人都知道我的意思以及我对标准化 Web UI 框架的期望。

请让我知道一种包含在 JSF 规范中的优雅方式,而无需实现另一个框架。

4

1 回答 1

1

有没有办法以一种可以发送和接收自定义事件的方式将 ManagedBeans 彼此分离——可能是通过(很酷的)FacesContext?!

并非没有将事件添加到组件中,您必须在 JSF 生命周期的事件阶段之前添加它。

我不想将 Beans 作为 ManagedProperty 注入,以减少直接依赖关系

仅仅因为您没有将所需的依赖项注入到您的 bean 中,并不意味着如果您尝试使用事件驱动模型,这些依赖项无论如何都不存在。至少通过注入依赖项,您可以显式声明托管 bean 所依赖的内容。这似乎是一个比您提出的更易于维护的解决方案。

熟悉 Adob​​e Flex 事件机制的人都知道我的意思以及我对标准化 Web UI 框架的期望。

您期望在 Web 应用程序框架中使用基于桌面的事件驱动模型吗?这是苹果对橘子。Adobe Flex 是一种富 Internet 应用程序,在与外部 Web 服务通信时其行为类似于桌面应用程序。JSF 是由 javascript 和 ajax 支持的基于 Web 的组件的 Web 应用程序框架标准,具有可重用的服务器组件和包括组件事件阶段的服务器生命周期。

请让我知道一种包含在 JSF 规范中的优雅方式,而无需实现另一个框架。

您的语言暗示您认为 JSF 并不优雅,并且您正在积极尝试使其成为不优雅的东西。请不要这样做,您将为自己和任何必须维护您的应用程序的人制造一场噩梦。

JSF 需要一种不同于您习惯的方式来思考 Web 应用程序开发。如果你觉得它很难吃,那么我建议放弃它,转而使用适合你舒适度的 Web 应用程序框架。您提到了 Flex,还有带有 .NET 的 Silverlight。

于 2012-03-07T20:51:58.827 回答