2012-04-06 28 views
3

我需要使用數據庫動態填充一個數據表,我需要調用retieveData()方法並傳遞一個id以在結果內標準我的結果。要傳遞的參數來自#{anotherBean.id}的另一個bean。我的問題是如何在該方法內傳遞此參數...? 下面是什麼,我試圖做...傳遞一個參數在<f:event listener =「#{myBean.retrieveData(#{})」>

<f:metadata> 
    <f:event listener="#{myBean.retrieveData(#{anotherBean.id)}" type="preRenderComponent" id="fevent"/> 
</f:metadata> 
+0

有一個solultion在http://stackoverflow.com/questions/10013343/how-to-pass-a-parameter-through-another-beans-object-inside-a-method-called-fro/10013560# 10013560 – 2012-04-06 10:15:53

回答

7

您可以將它傳遞給屬性。

這是我對JSF做:

<f:metadata> 
    <f:event listener="#{myBean.retrieveData}" type="preRenderView" id="fevent"/> 
    <f:attribute name="myid" value="#{anotherBean.id)" /> 
</f:metadata> 

同時管理bean(爲myBean)情況如下:

public void retrieveData(ComponentSystemEvent event) { 
    String id = (String) event.getComponent().getAttributes().get("myid"); 
} 

確保不使用 '()' 調用管理時bean的方法在f:event標籤的監聽器上。

3

基本上

<f:metadata> 
    <f:event listener="#{myBean.retrieveData(anotherBean.id)}" type="preRenderComponent" id="fevent"/> 
</f:metadata> 

應該做的。但是,爲什麼不將anotherBean注入myBean並在您的Java代碼中檢索id?在這種情況下,在Java代碼中保留這種邏輯通常更好,而不是查看 - xhtml文件。

相關問題