繁体   English   中英

如何在managedBean之间传递参数

[英]How to Pass parameter between managedBean

我有这种情况:

  1. 由loginBean.java管理的page1.xhtml
  2. 由dettaglioBean.java管理的page2.xhtml

我有一个goToDetail(String item)的方法loginBean选择项目时,这应有助于page2.xhtml。

当我尝试从传递特性loginBeandettaglioBean ,属性是nulldettaglioBean时page2.xhtml呈现或@PostConstruct提高。

这是goToDetail方法:

public String goToDetail(VStatoavanzamentoriep item) {
        FacesContext context = FacesContext.getCurrentInstance();
        DettaglioBean bean = (DettaglioBean)     context.getApplication().evaluateExpressionGet(context, "#{dettaglioBean}",     DettaglioBean.class);

    bean.setItem(item);

    return Constants.PageID.DettaglioID;
}

并且在faces-config.xml dettaglioBean声明为managedBean

当我转到page2.xhtml时, itemnull

我应该使用依赖项注入包括:

@ManagedProperty("#{dettaglioBean}") //+ setter
private DettaglioBean dettaglioBean;

loginBean

在托管bean中有一些发送或设置数据的方法。 请阅读BalusC答案。

相关文章

https://stackoverflow.com/a/4994833/892994

您可以通过将loginBean注入到dettaglioBean中而不是相反的方式来访问loginBean中的值,因为这是您在dettaglioBean中所需的loginBean中的值。

 @ManagedProperty("#{loginBean}") 
 private LoginBean loginBean;

当JSF实现遍及EL时,它将在各种作用域图中搜索Bean对象,并在找到它时将其注入到您的dettaglioBean中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM