两个bean之间的通信



我在一个页面上有两个区域和两个任务流。在第一个任务流中,管理bean位于页面流作用域,而在第二个任务流中,管理bean位于后台bean作用域。我的要求是我想从第二个bean调用一个bean的方法,反之亦然。

例如:在第一个jsf上,如果发生了一些动作,那么它的动作将转到它的bean,从那里我需要调用第二个bean的方法,反之亦然。

我怎样才能做到这一点?

由于两个任务流将同时运行,因此我需要获得bean的运行实例,以便我可以获得当前状态/值UI组件。

您所需要做的就是在另一个bean中注入您想要使用其方法的bean。在ADF中有一种简单的方法来实现这一点。在WEB-INF文件夹中应该有一个名为adfc-config.xml的文件。如果您打开它的源代码,您会注意到每个bean都是在<managed-bean>标记中描述的。它会像这样:

<managed-bean id="__2">
    <managed-bean-name>bean1</managed-bean-name>
    <managed-bean-class>com.domain.Bean1</managed-bean-class>
    <managed-bean-scope>view</managed-bean-scope>
</managed-bean>

表示每个bean。你必须在里面插入一个<managed-property>标签和你想要注入的bean的引用,就像这样:

<managed-bean id="__2">
    <managed-bean-name>bean1</managed-bean-name>
    <managed-bean-class>com.domain.Bean1</managed-bean-class>
    <managed-bean-scope>view</managed-bean-scope>
    <managed-property>
        <property-name>bean2</property-name>
        <value>#{Bean2}</value>
    </managed-property>
</managed-bean>

同样,在Bean1类中,您必须创建Bean2的实例变量,然后您可以使用它来获取其当前状态。

相关内容

  • 没有找到相关文章

最新更新