我有一个Primefaces数据表。
<p:dataTable id="updateStaffTable" var="staff" value="#{staffBean.staffs}"
selection="#{staffBean.selectedStaff}" selectionMode="single"
paginator="true" lazy="true" styleClass="dataTableSize" rows="10" >
<p:ajax event="rowSelect" listener="#{staffBean.onRowSelect}"
update=":updateStaffForm:updateStaffPanelGrid" oncomplete="PF('updateStaffDialog').show()" />
</p:dataTable>
现在,如果不允许用户,我想禁用选择属性。我可以通过编程方式检查用户的权限。我也有一个bean来检查,但我不能在这里使用render属性。我怎么能这样做,还是有其他好方法才能做到这一点?
答案 0 :(得分:3)
只需像使用其他属性一样在属性中使用EL。您可以使用条件运算符?:
在EL中执行if-else。
E.g。仅当用户具有角色single
时才设置为ADMIN
:
selectionMode="#{request.isUserInRole('ADMIN') ? 'single' : null}"
至于为此提出binding
的其他答案,只要在视图方面可以实现功能,建议使用{{1>} 。如果你真的需要从bean控制它,你甚至可以只做binding
。尝试尽可能避免selectionMode="#{bean.selectionMode}"
支持bean属性,除非您需要动态填充组件,这些组件由于某些不明原因无法在视图端完成(使用JSTL可以做很多事情)。