我在页面上有两个区域和两个任务流。在第一个任务流管理bean是在页面流范围,其中在第二个任务流中它在支持bean范围。我的要求是我想从econd bean调用一个bean的方法,反之亦然。
例如:在第一个jsff上,如果某个动作发生,那么它的动作将转到它的bean,从那里我需要调用第二个bean的方法,反之亦然。
我怎样才能做到这一点?
由于两个任务流都将同时运行,因此我需要运行bean的实例,以便我可以获取当前状态/值UI组件。
答案 0 :(得分:1)
您需要做的就是将要在其他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的实例变量,然后您可以使用它来获取其当前状态。