@postConstruct in JSF 1.1



如何在JSF 1.1中模拟@postConstruct行为,就像在JSF 1.2和更新版本中一样?

实际上,我想在页面加载期间自动调用bean方法?

我在JSF 1.1上使用IceFaces 1.8

@PostConstruct的要点是在所有托管属性(如<managed-property>@ManagedProperty)被设置并且所有依赖注入(例如@EJB, @Resource, @Inject等)已经发生之后,提供一个钩子来执行一些代码

如果没有,就使用bean的构造函数。

public class Bean {
    public Bean() {
        // Just do your job here. Don't do it the hard way.
    }
    // ...
}

或者如果你真的想在一个特定的属性被设置时执行它,那么在setter中执行这项工作,同时对当前的属性值进行空检查。

public class Bean {
    private SomeObject someManagedProperty;
    public void setSomeManagedProperty(someManagedProperty) {
        if (this.someManagedProperty == null && someManagedProperty != null) {
            // First-time set, now you can do your job here.
        }
        this.someManagedProperty = someManagedProperty;
    }
    // ...
}

根据注释更新

我想在每次加载页面时执行这个方法

@PostConstruct不这样做。但是,如果bean是请求作用域,那么您将看到相同的效果。您似乎正在使用会话或应用程序作用域的托管bean来管理请求作用域的数据。这在本质上是错误的。您应该将其转换为一个请求作用域bean。任何真实的会话作用域数据都可以拆分为一个会话作用域bean,然后通过<managed-property>注入该bean。

相关内容

  • 没有找到相关文章