将组件值和另一个参数发送给侦听器

时间:2012-06-27 11:17:47

标签: java ajax jsf primefaces listener

我有一个带有各种复选框的面板网格。复选框与某个掩码相关联。按下该复选框后,复选框(已选中/未确认)的值以及特定于该复选框的掩码参数应传递给侦听器。

<p:selectBooleanCheckbox value="#{options.mustChangePasswordMask}">
    <p:ajax listener="#{options.selectionChanged}" /> 
</p:selectBooleanCheckbox>

<p:selectBooleanCheckbox value="#{options.mustChangePasswordMask}">
    <p:ajax listener="#{options.selectionChanged('MASK_1')}" /> 
</p:selectBooleanCheckbox>

这两个代码片段只能完成我想要的工作的一半。我想在所有复选框中使用监听器,因此我不能在监听器中使用mustChangePasswordMask属性。是否可以将复选框值作为参数发送给侦听器,或者以侦听器可访问的其他方式发送?

1 个答案:

答案 0 :(得分:7)

当前组件在EL中可用作隐式变量#{component}。在输入组件中,这将使用UIInput类的实例进行设置,该实例又具有getValue()方法,该方法返回提交的,转换的和验证的值。所以,这应该做

<p:ajax listener="#{options.selectionChanged(component.value)}" />