伙计们我正在使用带弹簧的jsf 2.0。 我使用@PostConstruc在托管bean中注释了一个方法,但是如果在bean中没有字段连接到jsf页面,即使在jsf页面中有一个连接到该页面的动作方法,也不会调用@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());
}
}
答案 0 :(得分:0)
http://blog.icefaces.org/blojsom/blog/default/2009/04/23/Making-distinctions-between-different-kinds-of-JSF-managed-beans/我正在尝试使用此approch。你认为那个approch不正确吗? -
我不确定。该文章提到该模型通常放在会话范围内。这实际上是一种糟糕的方法。在请求范围bean中注入会话范围的bean是有意义的,如果会话作用域是例如登录用户,并且请求作用域绑定到表单。
在您的情况下,您应该只将模型bean作为控制器bean的属性,并使用#{gestisciUtentiController.utenteBean.someProperty}
而不是#{utenteBean.someProperty}
。
之前我有一些“JSF设计”问题,您可能会发现它们也很有用: