如果仅声明为动作方法,则@PostConstruct不起作用

| 伙计们,我在春季使用jsf 2.0。 我已经用@PostConstruc在托管bean中注释了一个方法,但是如果在bean中没有连接到jsf页面的字段,即使在jsf页面中连接了一个action方法,也不会调用@PostConstruct方法。到豆子。 先感谢您。 添加了解释代码: 这是我的BackingManagedBean
@ManagedBean(name=\"utenteBean\")
@ViewScoped
public class UtenteBean extends SupportBean implements Serializable
虽然这是我的ControllerManagedBean
@ManagedBean(name=\"gestisciUtentiController\")
@ViewScoped
public class GestisciUtentiController extends MessageSupportBean implements Serializable {

@ManagedProperty(value=\"#{utenteBean}\")
private UtenteBean utenteBean;
public void setUtenteBean(UtenteBean utenteBean) {
    this.utenteBean = utenteBean;
}

    @PostConstruct
    public void loadBean()
    {
        try
        {
            utenteBean.setUtentis(getFacadeFactory().getUtenteFacade().readAllOrdered(Utente.class, \"username\"));
        }
        catch (ApplicationException e)
        {
            setExceptionMessage(e.getLocalizedMessage(), e.getLocalizedMessageDetail());
        }
    }
    
已邀请:
  http://blog.icefaces.org/blojsom/blog/default/2009/04/23/Making-distinctions-between-different-kinds-of-JSF-managed-beans/我正在尝试使用此方法。您认为这种做法不正确吗? – 我不确定。那篇文章提到该模型通常放置在会话范围内。这实际上是一种糟糕的方法。如果会话范围为一个的会话例如是登录用户,并且请求范围为一个的请求绑定到表单,则将会话范围的bean注入请求范围的bean是有意义的。 在您的情况下,应仅使模型bean成为控制器bean的属性,并使用
#{gestisciUtentiController.utenteBean.someProperty}
而不是
#{utenteBean.someProperty}
。 之前我有一些“ JSF设计”问题,您可能会发现它们也很有用: JSF MVC设计问题 JSF / Java设计问题 JSF MVC框架中的MVC有哪些组件?     

要回复问题请先登录注册