JSF2托管Bean参考问题:CDI注入?

时间:2011-07-29 14:20:17

标签: java jsf java-ee jsf-2 cdi

我有一个名为:

的托管bean
@ManagedBean(name="configBean")
@SessionScoped
public class configBean implements Serializable { 

实例化一个类/ bean(它不是一个托管bean,它是一个标准类):

com.package.class variableName = new com.package.class(); 

&安培;从这个类创建/设置了许多对象,例如:

variableName.setCached( true );

我还有另一个豆子,现在简称为:

@ManagedBean(name="testBean")
@SessionScoped
public class testBean implements Serializable { 

&安培;基本上我想在我的testBean中引用/实现'variableName'实例化,如下所示:

    if( !( variableName.isCached() ) )
     {
        System.out.println( "cry yourself to sleep foo..");
     }
  else
    { 
        System.out.println( "your not as useless as you look");
    }

从我所看到的看起来,Bean注入就像我正在寻找的那样?但是我还没有开始工作,所以希望有人可以举起一个简单的例子,所以我知道我的线路正确!

干杯

2 个答案:

答案 0 :(得分:0)

由于configBeantestBean都是托管bean,因此您可以像这样引用它们:

@ManagedBean(name="testBean")
@SessionScoped
public class testBean implements Serializable { 

   @ManagedProperty(value="#{configBean}")
   private ConfigBean configBean;

   ....

   ... configBean.getVariableName().isCached()...
}

答案 1 :(得分:0)

在testBean中使用以下代码

private configBean configBean;

@ManagedProperty(value="configBean")
public configBean getConfigBean()
{
    return configBean;
}

public void setConfigBean(configBean configBean)
{
    this.configBean = configBean;
}

然后您可以使用

访问variableName
configBean.getVariableName();