JSF2中ManagedBeans之间的事件处理机制?

时间:2012-03-07 18:44:16

标签: events jsf jsf-2 dependencies coupling

有没有办法以可以发送和接收自定义事件的方式将ManagedBeans彼此分离 - 可能是在(酷)FacesContext上?我不想将Beans注入ManagedProperty,以减少直接依赖性。不幸的是@ListenerFor和所有新东西只适用于组件和渲染器,似乎完全是错误的方法。

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

请告诉我一个包含在JSF规范中的优雅方式,而无需实现其他框架。

1 个答案:

答案 0 :(得分:1)

  

有没有办法以可以发送和接收自定义事件的方式将ManagedBeans彼此分离 - 可能是在(酷)FacesContext上?

除非将事件添加到组件,否则您必须在JSF生命周期的事件阶段之前添加它。

  

我不想将Beans注入ManagedProperty,以减少直接依赖性

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

  

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

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

  

请告诉我一个包含在JSF规范中的优雅方式,而无需实现其他框架。

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

JSF需要一种不同于您习惯的Web应用程序开发的思维方式。如果你发现这个不合适,那么我建议放弃它,以适应你的舒适度水平的Web应用程序框架。你提到过Flex,还有Silverlight和.NET。

相关问题