0

a4j:outputPanelがあります。ページ内の別の場所をクリックして再レンダリングし、再レンダリングされたときにアクションを起動したいと考えていますoutputPanel

onrender イベントなどはありますか? 試してみましたが、検索しましたが、やりたいことができません。再レンダリング操作を起動する oncomplete イベントを使用できることはわかっていますが、それはやりたくないことです。

とにかく、何かアイデアはありますか?正確な解決策は必要ありません。アイデアだけで、これを行う方法を見つけることができます。

編集: 間違いで申し訳ありません。起動したいアクションは js アクションです。

4

3 に答える 3

1

置いてみる

<f:event listener="#{myBean.myAction}" type="preRenderComponent"></f:event>

あなたの中にoutputPanel...

public void myAction(ComponentSystemEvent componentSystemEvent) {  
   //some code goes here...
}  

マネージド Bean メソッドから js コードを呼び出したい場合は、Primefaces - RequestContextを使用できます。

public void myAction(ComponentSystemEvent componentSystemEvent) {  
    RequestContext requestContext = RequestContext.getCurrentInstance();  
    requestContext.execute("alert('wow')");
}
于 2013-02-26T12:00:01.027 に答える
0

コンポーネントのonbeforedomupdateを試してください<a4j:ajax/>

<a4j:outputPanel>
   <a4j:ajax onbeforedomupdate="yourJs();"/>
</a4j:outputPanel>
于 2013-02-26T17:46:09.647 に答える
0

アクションがコンポーネントを再レンダリングすることが確実な場合は、それをアクション自体に追加しないでください。Daniel が提案したメソッドを使用して、Java メソッドから JavaScript 呼び出しを追加することもできます。Icefaces には JavaScript コンテキスト クラスが付属していますが、richfaces にも同様のものがあると確信しています。

于 2013-02-26T15:11:05.093 に答える