在ICEFaces中通知另一个bean

Tam*_*Tam 3 jsf icefaces

我有一个ICEFaces我们申请.一个页面有两个bean,它们在页面上显示不同的内容.

我希望能够在另一个bean更改bean上的内容时通知一个bean,以便第一个bean更新其在页面上的内容.

在ICEFaces有可能吗?如果是这样的话?

谢谢,

Rom*_*las 5

你可以做的是将bean1"注入"bean2,这样bean2就可以访问bean1中的任何方法.

如果您使用的是Spring,那么在定义bean时可以轻松完成:

<bean id="bean1" class="foo.bar.Bean1"/>
<bean id="bean2" class="foo.bar.Bean2">
    <property id="bean1" ref="bean1"/>
</bean>
Run Code Online (Sandbox Code Playgroud)

并在bean2的Java代码中:

public class Bean2 {

    private Bean1 bean1 = null;

    // The setter will be used by Spring to inject Bean1 in Bean2...
    public void setBean1(Bean1 bean1) {
        this.bean1 = bean1;
    }

    ...

    public void someMethod() {
        ...
        // Now, you can call the bean1 instance to update what you want...
        bean1.updateSomething();
    }

}
Run Code Online (Sandbox Code Playgroud)

如果你不使用Spring:

您可以直接访问bean2代码中的bean1实例:

Bean1 bean1 = (Bean1) FacesContext.getCurrentInstance().getCurrentInstance()
    .getExternalContext().getSessionMap().get("bean1");
Run Code Online (Sandbox Code Playgroud)