如何在按钮单击时通过ajax将多个组件值传递给侦听器

时间:2015-04-14 22:06:21

标签: ajax jsf-2 jsf-2.2

我有帐号列表的选择框,输入金额的输入字段和计算总借记的按钮。我想通过ajax将金额和帐户值传递给click事件上的事件处理程序。

我无法将输入的值传递给事件处理程序。

有人可以建议我,怎么做?

我的Xhtml:

<h:selectOneMenu class="RUIFW-from-el form-control"
id="fromAccountIndex" value="#{parentBean.fromAccountIndex}"
validator="#{tptValidator.validateFromAccount}">
<f:selectItems value="#{parentBean.fromAccountUIMap}"/>
</h:selectOneMenu>


<h:inputText id="amount" name="amount" value="#{parentBean.amount}" class="RUIFW-form-el form-control" validator="#{tptValidator.validateAmount}"/>

更新的代码:

<h:commandLink class="RUIFW-btn mar-lft-10 veraligntop">
<h:outputLabel value="#{GIBBundle.tpt_btn_calculate}"/>
<f:ajax execute="@this fromAccountIndex amount onclick" listener="#{parentBean.calculateClickedListener}"/>
</h:commandLink> 

我的豆方法

public void calculateClickedListener(AjaxBehaviorEvent event) {
                System.out.println("getFromAccountIndex()....."+getFromAccountIndex());
System.out.println("getAmount()....."+getAmount());
    }

1 个答案:

答案 0 :(得分:1)

您未在execute上设置f:ajax属性。该属性默认为@this,因此,不会处理任何其他组件,也不会设置任何值。这就是输入组件的值绑定可能变为空的原因。

设置execute="@form"execute="@this fromAccountIndex amount"以更新bean中的值

<强>参考: