我有以下代码:
<p:selectManyCheckbox id="contactrole"
value="#{contactDetail.contactRoles}"
required="#{}"
layout="grid"
columns="1"
disabled="#{!contactDetail.editMode}">
<f:selectItems value="#{contactDetail.contactRoleItems}"/>
<p:ajax event="change"
process="@this"
update="linked_relationship_detail"
listener="#{contactDetail.doSomething()}"/>
</p:selectManyCheckbox>
当我选中或取消选中复选框时,执行doSomething()
方法,除非取消选中最后一个复选框。因此,如果没有选中复选框,则不会调用此方法。
当我将required属性设置为false时,将调用该方法。直到某一点我理解这个逻辑,但是我的视图中的某些组件是否被渲染(取决于是否选择了复选框)。那么我怎么知道没有选择复选框呢?
答案 0 :(得分:0)
如果您需要根据p:selectManyCheckbox
是否选择了任何组件来渲染组件,您只需执行以下操作:
... rendered="#{not empty contactDetail.contactRoles}" ...