我有一个带有各种复选框的面板网格。复选框与某个掩码相关联。按下该复选框后,复选框(已选中/未确认)的值以及特定于该复选框的掩码参数应传递给侦听器。
<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属性。是否可以将复选框值作为参数发送给侦听器,或者以侦听器可访问的其他方式发送?
答案 0 :(得分:7)
当前组件在EL中可用作隐式变量#{component}
。在输入组件中,这将使用UIInput
类的实例进行设置,该实例又具有getValue()
方法,该方法返回提交的,转换的和验证的值。所以,这应该做
<p:ajax listener="#{options.selectionChanged(component.value)}" />