2012-01-30 12 views
17

JSF 2.0でプロジェクト(のJBoss AS 7に)、私は小さなアイコンのステータスを表示するには、私のAJAXの提出フォームに希望がに、上の開始および完全なフェーズをトリガーエンドユーザーに何かが起こっていることを知らせてください。:AJAXのonEvent機能を

ここではprimefaces p:ajaxStatusは役に立ちません。私のページのさまざまな場所にさまざまなアイコンがたくさんあるからです。

"How show different ajax status in same input?"という解決策が見つかりましたが、私はまだ問題があります。私のJavaScript関数を再利用できるようにするには、呼び出しに追加のパラメータを指定する必要があります。

私はこのようなものでした:

<h:commandLink value="do something boy!"> 
    <f:ajax render="@form" execute="@form" listener="#{myBean.doStuff}" 
     onevent="showProgress" /> 
    <f:param name="extraParam" value="extraValue" /> 
</h:commandLink> 

を、私は、要求を介してサーバーに送信されたパラメータ「extraParam」を参照してくださいすることができますが、私のjavascriptのshowProgress方法で私は与えられたパラメータを使用して、それを回復することはできません。

だから私の質問は以下のとおりです。私はf:param(または多分f:attribute、または何か他のもの)を介して私のf:ajax onevent javascriptのメソッドadditionnalパラメータに提供することができますか?

答えて

38

余分な引数として渡す無名関数にラップします。

<h:commandLink value="do something boy!"> 
    <f:ajax render="@form" execute="@form" listener="#{myBean.doStuff}" 
     onevent="function(data) { showProgress(data, 'extraValue') }" /> 
</h:commandLink> 

function showProgress(data, extraParam) { 
    // Use "data" argument the usual way. 
    // The "extraParam" argument will contain "extraValue" in above example. 
} 
+3

OWW、確かに賢いです! –

+0

ようこそ。 – BalusC

+0

この 'extraValue'をjsf式にすることはできますか?私は、 'onevent =" function(data){showProgress(data、 '#{myBean.whatever}'}} 'のようなものになりうることを意味します'?Thx! – dcalap