2012-05-17 36 views
0

如果我從第一頁導航到第二頁,當我點擊頁面上的提交按鈕時,控件轉到與第一頁相對應的託管bean,我想從數據庫中獲取一些結果並將它們顯示在第二頁上,如果我將數據庫值設置爲與第一個受管Bean的操作方法中的第二頁對應的託管bean,那麼我將能夠在第二頁上獲得這些值。在另一個ManagedBean的方法中設置ManagedBean值

請建議我的方法是否正確?

回答

0

你可以注入假設名爲Bean1豆成Bean2這樣

@ManagedBean 
@RequestScoped 
public Bean2 { 
    @ManagedProperty(value="#{bean1}")//this is EL name of your bean 
    private Bean1 injectedBean; 

    public void setBean1(Bean1 value) { 
      injectedBean = value; //provide setter for it 
    } 

    @PostConstruct 
    private void init() { 
     List<YourData> list = injectedBean.getDBData(); //now you can fetch your list 
    } 

請注意,您必須提供所注入的bean的注入和範圍制定者應該總是那麼你的豆範圍相同或更高(在這種情況下Bean1必須至少是RequestScope)

PS你也可以擁有某種DAO bean,它可以爲你做所有的數據庫數據庫操作(它可以是EJB bean甚至是JSF Managed Bean),然後將它注入到每個需要與你的數據庫合作的ManagedBean中。

+0

其實我有一個xhtml頁面,點擊提交按鈕,我需要在下一頁顯示一組記錄。在這兩頁中,涉及兩個託管bean。當我點擊提交按鈕後,第一個託管bean的操作方法被調用,我有值的列表,我想在第二頁上顯示這些值的列表。你能幫我嗎我該怎麼做 –

+0

我的意思是如何在下一個託管bean的屬性中設置這個列表 –

+0

這個bean的範圍應該是什麼 –