ValueChangeListener方法没有在我的h:selectOneRadio上调用



我对JSF中的单选按钮列表以及它对内容的反应有点困惑,而且我在网上找不到太多帮助。下面是我的单选按钮列表的声明,以及在单选按钮的值发生变化时应该调用的方法:

<h:selectOneRadio value="#{AddExpense.selectedTypeExp}" layout="pageDirection" 
                              valueChangeListener="#{AddExpense.changed}">
    <f:selectItems value="#{AddExpense.typeExpList}"/>
    <a:support event="onclick" action="#{AddExpense.typeExpChanged}" immediate="true"/>
</h:selectOneRadio>

当我选择不同的值时,只调用typeExpChanged,而不调用AddExpense.changed方法。我想我在这里混淆了一些东西,不确定changeListener应该如何反应…下面是我的一个非常简单的测试方法,它应该被称为:

public void changed(ValueChangeEvent event){
        System.out.println("In changed event method: "+event.getNewValue());
}

我应该在<a:support>中改变一些东西吗?

我同时拥有event和valueChangeListener的原因是因为我想测试对我更改选择的反应。我只需要调用一个带参数的方法告诉我选择的值,这样我就可以加载其他东西了。提前感谢!

valueChangeListener不是客户端事件侦听器。它是一个服务器端事件监听器。它不生成任何一行HTML/JS/Ajax代码,当您将表单提交给服务器并且提交的值与初始模型值不同时,它由JSF本身触发。

继续使用Ajax4jsf <a4j:support>,它完全可以满足您的特定功能需求。

相关内容

  • 没有找到相关文章

最新更新