2011-07-29 112 views
0

我呼籲管理bean:JSF2託管Bean參考問題:CDI注入?

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

實例化一個類/豆(這不是一個管理的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"); 
    } 

從我所看到的它看起來好像豆注入是什麼,我找?然而,我還沒有得到它的工作,所以希望有人可以敲一個快速的例子,所以我知道我在正確的路線!

乾杯

+0

請考慮使用'System.out.println(「variableName.isCached():」+ variableName.isCached())'。少可愛但更簡潔。 –

回答

0

由於兩個configBeantestBean的管理豆你可以引用他們是這樣的:

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

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

    .... 

    ... configBean.getVariableName().isCached()... 
} 
+0

嗯,這是我認爲我一直在玩的東西,但我得到了一個'無法實例化類:com.package.testBean。',堆棧跟蹤說:'引起:java.lang.NullPointerException '.. 有任何想法嗎? – Ally

+0

然後你在testBean中的構造函數有一個問題(它應該被稱爲TestBean btw,約定是件好事) – DoubleMalt

0

以下代碼testBean就

private configBean configBean; 

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

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

然後你就可以用

訪問VARIABLENAME
configBean.getVariableName();