2011-01-12 25 views
0

我需要預加載頁面加載時顯示的一些數據。初始化步驟在@ PostConstruct-annotated方法上執行,但現在我需要使用參數才能獲取數據。如何發送一個參數用於支持bean的@PostConstruct方法?

我想要做的事:

@PostConstruct 
public void init() 
{ 
    List data = getDataFromDB(parameter) /*Need to read a parameter created somewhere else*/ 
} 

有沒有辦法來實現這一目標?

在此先感謝

+0

這個參數來自哪裏? – BalusC 2011-01-12 21:16:27

回答

0

怎麼樣從Properties文件中讀取數據,或者取出由DB List

1

這很難說出「你在其他地方設置的參數」是什麼意思。我將假設「別的地方」是指「通過HTTP從瀏覽器發送」。在這種情況下,你應該在你的託管bean創建一個標準的屬性和:

  • 在JSF 2.0,你可以用@ManagedProperty註釋它( 「#{} param.nameOfParameterToRead」)
  • 在JSF 1.2,少 - 在bean描述中使用managed-property元素(faces-config.xml)。

像這樣:


    @ManagedBean 
    @RequestScoped 
    class MyManagedBean {

@ManagedProperty("#{param.id}") 
    public Integer id; 

    @PostConstruct 
    public void init(){ 
    data = getDataFromDB(id) 
    } 



// setters and getters (mandatory, even though annotation is on an attribute!!!) 


} 

小心:注入性不使用JSF轉換器,所以它是最好的注入字符串和照顧的轉換在自己的代碼。

+0

它在視圖範圍的bean中不起作用。 – 2013-02-21 10:42:22