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

Sei*_*dis 3 java ajax jsf listener primefaces

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

<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>
Run Code Online (Sandbox Code Playgroud)

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

Bal*_*usC 7

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

<p:ajax listener="#{options.selectionChanged(component.value)}" />
Run Code Online (Sandbox Code Playgroud)