2012-05-01 1 views
9

私のajaxリクエストでサーバーにパラメータを渡す必要があります。以下のコードをご覧ください。 範囲:Fなしビュースコープh:inputTextのf:ajaxにパラメータを渡す方法f:paramが機能しません

:PARAM豆この場合

public final void onCostoBrutoChange(final AjaxBehaviorEvent event) { 
    createCostoBrutoOptions(promoArticlesList); 
} 

を管理

<p:column width="40"> 
    <h:inputText id="originalCostInputTxt" value="#{articlePromo.costoBruto}" 
     <f:ajax event="change" 
      execute="@this" 
      listener="#{promotionDetailManagedBean.onCostoBrutoChange}"> 
     </f:ajax> 
    </h:inputText> 
</p:column> 

、方法onCostoBrutoChange()が呼び出されません。しかし、f:paramをインクルードしたときに呼び出されることはありません。以下のコードをご覧ください。 Fで

:PARAM

<p:column width="40"> 
    <h:inputText id="originalCostInputTxt" value="#{articlePromo.costoBruto}" 
     <f:ajax event="change" 
      execute="@this" 
      listener="#{promotionDetailManagedBean.onCostoBrutoChange}"> 
     <f:param value="#{articlePromo.promocionArticuloId}" name="myId"/> 
     </f:ajax> 
    </h:inputText> 
</p:column> 

このコードでいただきました!間違って識別することができません

public final void onCostoBrutoChange(final AjaxBehaviorEvent event) { createCostoBrutoOptions(promoArticlesList); String id = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("myId"); } 

管理。ご案内ください。

おかげで、 Shikha

答えて

27

のみリンクやボタンではなく、入力中<f:param>作品。

環境がEL 2.2をサポートしている場合は、だけではなく、メソッドの引数として渡し:

<h:inputText ...> 
    <f:ajax listener="#{bean.listener(item)}" /> 
</h:inputText> 

<h:inputText ...> 
    <f:ajax listener="#{bean.listener(item.id)}" /> 
</h:inputText> 

public void listener(Long id) { 
    // ... 
} 

をあなたはまた、単に全体のアイテムを渡すことができます

public void listener(Item item) { 
    // ... 
} 

ご使用の環境がEL 2.2をサポートしていない、またはサポートしていない場合は、プログラムでELを評価してください。

public void listener() { 
    FacesContext context = FacesContext.getCurrentInstance(); 
    Long id = context.getApplication().evaluateExpressionGet(context, "#{item.id}", Long.class); 
    // ... 
} 
+0

このように気付かなかった...ニース!!! – Daniel

+3

神からの答え.. ..ありがとう。出来た。同じことを知らなかった。 –

+0

@ BalusC私はELを反復変数 'var'を使って' c:foreach'の中でプログラム的に評価していますが、評価は 'null'です。 – Theo

関連する問題