3

データベースを使用して1つのデータテーブルを動的に設定する必要があります.retieveData()メソッドを呼び出し、メソッド内の結果を基準にIDを渡す必要があります。渡されるパラメーターは、#{anotherBean.id} によって別の Bean から取得されます。私の質問は、メソッド内でこのパラメーターを渡す方法です...? 以下は私がやろうとしていることです...

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

2 に答える 2

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");
}

f:event タグのリスナーでマネージド Bean のメソッドを呼び出すときに、'()' を使用しないように注意してください。

于 2012-04-07T14:54:36.063 に答える
3

基本的

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

すべきです。しかし、Java コードに idを注入anotherBeanして取得してみませんか? myBean通常、この種のロジックは、ビュー (この場合は xhtml ファイル) ではなく Java コードに保持することをお勧めします。

于 2012-04-06T09:03:41.027 に答える